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'