Python Django应用程序在nginx+上配置时有错误的URL;带子路径的uwsgi
我正在尝试配置nginx和uwsgi,以便在Python Django应用程序在nginx+上配置时有错误的URL;带子路径的uwsgi,python,django,nginx,uwsgi,wagtail,Python,Django,Nginx,Uwsgi,Wagtail,我正在尝试配置nginx和uwsgi,以便在/blog子路径上为django(确切地说是wagtail)应用程序提供服务。对此问题的大多数答案(如)建议使用: location /blog { include uwsgi_params; uwsgi_pass unix:/run/uwsgi/application.sock; uwsgi_param SCRIPT_NAME /blog; uwsgi_modifier1 30; } 不幸的是,这对我不起作用。访问/
/blog
子路径上为django(确切地说是wagtail)应用程序提供服务。对此问题的大多数答案(如)建议使用:
location /blog {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/application.sock;
uwsgi_param SCRIPT_NAME /blog;
uwsgi_modifier1 30;
}
不幸的是,这对我不起作用。访问
/blog
会复制子路径并重定向到/blog/blog/
。Wagtail然后将其404页面显示为/blog/blog/
不存在。我不确定是nginx还是django的问题。我也有类似的问题,下面是我如何解决的。与Wagtail 1.13+uwsgi+nginx/1.10.3(Ubuntu)配合使用
在wagtailblog/settings/base.py中:
ROOT_URL = '/blog'
USE_X_FORWARDED_HOST = True
FORCE_SCRIPT_NAME = ROOT_URL
BASE_PATH = ROOT_URL
APP_SUB_URL = ROOT_URL
if len(APP_SUB_URL):
FORCE_SCRIPT_NAME = APP_SUB_URL
STATIC_URL = APP_SUB_URL + "/static/"
MEDIA_URL = APP_SUB_URL + "/media/"
ADMIN_MEDIA_PREFIX = APP_SUB_URL + "/static/admin/"
LOGIN_URL = APP_SUB_URL + "/login/"
在nginxblog.conf文件中:
location /blog/ {
include uwsgi_params;
rewrite /blog/(.*) /$1 break;
uwsgi_pass unix:/run/uwsgi/application.sock;
}
此外,您还可以让nginx处理静态文件以获得更好的性能:
location /blog/static/ {
access_log off;
expires 3600;
alias /path/to/wagtail/app/blog/static/;
}
location /blog/media/ {
access_log off;
expires 864000;
alias /path/to/wagtail/app/media/;
}
我还必须在/path/to/wagtail/app/blog/static中向管理员静态文件添加符号链接/
cd /path/to/wagtail/app/blog/static/
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailadmin/static/wagtailadmin/
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtaildocs/static/wagtaildocs/
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailembeds/static/wagtailembeds/
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailimages/static/wagtailimages/
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailsnippets/static/wagtailsnippets/