nginx子路径下反代运行多个django

方案一

uWSGI config:

[uwsgi]
socket = /tmp/project.sock
; mount apps
mount = /app1=app1.py
mount = /app2=app2.py
; rewrite SCRIPT_NAME and PATH_INFO accordingly
manage-script-name = true

Nginx config:

server {
    location /subpath/static {
        alias /srv/subpath/static;
    }

    location /subpath {
        uwsgi_pass unix://var/run/uwsgi.socket;
        uwsgi_param SCRIPT_NAME /subpath; # Pass the URL prefix to uWSGI so the "fixpathinfo:" route-rule can strip it out
        include uwsgi_params;
    }
}

方案二

uWSGI config:

[uwsgi]
socket = /tmp/project.sock
# Requires PCRE support compiled into uWSGI
route-run = fixpathinfo:

Nginx config:

server {
    location /subpath/static {
        alias /srv/subpath/static;
    }

    location /subpath {
        uwsgi_pass unix://var/run/uwsgi.socket;
        uwsgi_param SCRIPT_NAME /subpath; # Pass the URL prefix to uWSGI so the "fixpathinfo:" route-rule can strip it out
        include uwsgi_params;
    }
}

方案三

在 settings.py 里,增加以下参数:

FORCE_SCRIPT_NAME = '/subpath'

Reference Link

posted @ 2021-05-31 18:20  jonnyan  阅读(258)  评论(0编辑  收藏  举报