[英]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.