如何在生产环境中使用gunicorn和nginx托管2个Django应用程序

3

你好,我想使用Gunicorn和Nginx托管2个Django网站,但我不知道如何操作。这是我第一次在一个服务器上托管2个Django网站并且它们有两个不同的域名,请告诉我如何托管2个Django网站。 这是我的第一个文件位置:/var/www/site1 这是我的第二个文件位置:/var/www/site2


解决方案是为每个Django站点配置单独的Gunicorn实例(在不同端口上运行每个实例),然后使用NGINX作为反向代理将特定的URI重定向到每个站点。例如,您可以将site1.example.com指向一个站点的根目录,将site2.example.com指向另一个站点的根目录,或者使用example.com/site1/和example.com/site2/。 - xle
1个回答

2
假设您在8081和8082端口上运行gunicorn实例,则有两个选项:
选项1:子域名
要使用子域名来反向代理NGINX,请参见此答案http://site1.example.com/ 重定向到站点1,http://site2.example.com/ 重定向到站点2。
NGINX配置:
server {
    listen 80;
    server_name site1.example.com;
    location / {
        proxy_pass http://127.0.0.1:8082;
    }
}
server {
    listen 80;
    server_name site2.example.com;
    location / {
        proxy_pass http://127.0.0.1:8082;
    }
}

选项2:位置 http://example.com/site1/现在重定向到网站1,http://example.com/site2/重定向到网站2。
NGINX配置:
server {
    listen 80;
    server_name example.com;
    location /site1/ {
        proxy_pass http://127.0.0.1:8081;
    }
    location /site2/ {
        proxy_pass http://127.0.0.1:8082;
    }
}

编辑 - 选项3:域名

您也可以像选项1一样为不同的站点使用不同的域名。

http://site1.com/ 重定向到网站1,http://site2.com/ 到网站2。

NGINX配置:

server {
    listen 80;
    server_name site1.com;
    location / {
        proxy_pass http://127.0.0.1:8082;
    }
}
server {
    listen 80;
    server_name site2.com;
    location / {
        proxy_pass http://127.0.0.1:8082;
    }
}

注意:这些是最基本的设置,可能需要额外的配置才能与您特定的服务配合使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接