我使用nginx,Gunicorn和Ubuntu 14.04设置了一个Django服务器。现在,我需要启用nginx作为负载均衡器。但是,我在网上找不到与此相关的任何内容,我不清楚如何在nginx上启用负载均衡,而gunicorn是我上游块的一部分。
根据nginx documentation,负载平衡至少需要以下基本设置:
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
此设置清晰易懂。我使用gunicorn的配置如下所示,并包含对gunicorn.sock文件的引用。
http {
upstream myapp1 {
server unix:/home/myapp/run/stage/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
location / {
if (!-f $request_filename) {
proxy_pass http://myapp1;
break;
}
}
}
}
如果你能帮助我解决以下问题,那就太棒了:
以下上游块是否正确以在此设置中启用负载平衡?
或者:我是否必须在其他服务器上引用.sock文件而不是使用例如srv2.example.com
我是否必须向所有服务器添加类似的块或仅添加到一台服务器?
upstream myapp1 {
server server unix:/home/myapp/run/stage/gunicorn.sock fail_timeout=0;
server srv2.example.com;
server srv3.example.com;
}
希望有人以前这样做过。
谢谢你, 克里斯