我有运行virtualenv的DjangoServer1和DjangoServer2,其中安装了gunicorn。 nginx已安装在Ubuntu中的用户下。
我使DjangoServer1在nginx,gunicorn下运行。
服务器IP:12.12.12.12
DjangoServer1的网站域为mydomain1.com
DjangoServer2的网站域为mydomain2.com
这是DjangoServer1的nginx服务器配置。
/ etc / nginx / sites-available / DjangoServer1
server {
listen 0.0.0.0:80;
server_name 127.0.0.1;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/develop/DjangoServer1;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/user/develop/DjangoServer1/DjangoServer1.sock;
}
}
我启动DjangoServer1:
1)在virtualenv下,运行gunicorn命令以启动DjangoServer1
gunicorn --daemon --workers 3 --bind unix:/home/user/develop/DjangoServer1/DjangoServer1.sock DjangoServer1.wsgi
2)然后,运行:
sudo服务nginx重新启动
3)在路由器中,我将端口80(8000)转发到服务器12.12.12.12
4)在浏览器中,输入:12.12.12.12。 DjangoServer1有效。输入:mydomain1.com,DjangoServer1有效。
现在,我想在同一服务器上运行DjangoServer2:12.12.12.12
问题:如何将DjangoServer1和DjangoServer2配置为不同的端口?
如何运行gunicorn命令以使用其他端口?以下命令使用端口8000?为什么?
gunicorn --daemon --workers 3 --bind unix:/home/user/develop/DjangoServer1/DjangoServer1.sock DjangoServer1.wsgi
如何配置nginx文件?
答案 0 :(得分:1)
更改您的Gunicorn命令以在指定端口上运行服务器。
gunicorn --daemon --workers 3 --bind :8080 DjangoServer1.wsgi
现在更改您的NGINX conf文件,以将其转发到Application Server。
upstream django-server-1 {
server 0.0.0.0:8080;
}
server {
listen 0.0.0.0:80;
server_name 127.0.0.1;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/develop/DjangoServer1;
}
location / {
include proxy_params;
proxy_pass http://django-server-1;
proxy_next_upstream off;
}
}
重新启动NGINX服务。
这会将所有到达80
端口的请求转发到您的应用程序服务器DjangoServer1
。
如果您明确希望将来自8080
的请求转发到您的应用程序服务器,请更改NGINX配置中的server
块或使用规则创建新的服务器块。