我想在 Fedora 8 上设置 nginx 0.6.33 作为运行 Apache 的后端的负载平衡器。我毫无问题地将其配置为默认 http 端口 80,但我不知道如何为 SSL (443) 进行配置。我不想在 nginx 框上安装 SSL 证书,我希望它将整个流量传递到已安装证书的 Apache 服务器。
我的配置如下:
http {
upstream backend{
server 192.168.0.1;
server 192.168.0.2;
}
upstream secure{
server 192.168.0.1:443;
server 192.168.0.2:443;
}
server{
listen 80;
server_name www.my-server.net;
location / {
proxy_pass http://backend;
proxy_set_header Host $http_host;
proxy_redirect false;
}
}
server{
listen 443;
server_name www.my-server.net;
location / {
proxy_pass https://secure;
proxy_set_header Host $http_host;
proxy_redirect false;
}
}
}
答案1
不要将 nginx 用作负载平衡器;它不是为这种事情设计的。具体来说,就您而言,它不支持透明地将 TCP 连接传递到后端,因此您需要在 nginx 中设置 SSL 证书并将其作为常规 HTTP 传递回 Apache。
您要么需要一个真正的 L3 负载均衡器(如 LVS),要么需要一个 TCP 代理(如 haproxy),这样 SSL 连接就可以直接流到 Apache。