[英]How to configure nginx, gunicorn to run 2 django servers with different domain names
我有运行virtualenv的DjangoServer1和DjangoServer2,其中安装了gunicorn。 nginx安装在Ubuntu中的user下。
我使DjangoServer1在nginx,gunicorn下运行。
伺服器IP:12.12.12.12
DjangoServer1的网站域是mydomain1.com
DjangoServer2的网站域是mydomain2.com
这是DjangoServer1的nginx服务器配置。
在/ etc / nginx的/网站可用/ 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文件?
更改您的Gunicorn命令以在指定端口上运行服务器。
gunicorn --daemon --workers 3 --bind :8080 DjangoServer1.wsgi
现在更改您的NGINX conf文件,以将其转发到应用服务器。
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
块,或者使用您的规则创建一个新的服务器块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.