2

I am trying to configure nginx and uwsgi to serve django (wagtail to be exact) app on /blog subpath. Most answers to this question (like this one) suggest using:

location /blog {
    include uwsgi_params;
    uwsgi_pass unix:/run/uwsgi/application.sock;
    uwsgi_param SCRIPT_NAME /blog;
    uwsgi_modifier1 30;
}

Unfortunately it does not work for me. Accessing /blog duplicates subpath and redirects to /blog/blog/. Wagtail then shows its 404 page as /blog/blog/ does not exist. I am not sure whether it's nginx or django problem.

Community
  • 1
  • 1
user3146472
  • 383
  • 1
  • 5
  • 16

1 Answers1

0

I had similar problem, here's what I did to fix it. Works with Wagtail 1.13 + uwsgi + nginx/1.10.3 (Ubuntu).

in wagtail blog/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/"

in nginx blog.conf file:

location /blog/ {
    include uwsgi_params;
    rewrite /blog/(.*) /$1 break;
    uwsgi_pass      unix:/run/uwsgi/application.sock;
}

also, you can have nginx handle the static files for better performance:

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/;
}

I also had to add symlinks to the admin static files in /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/
Andrew Kapunin
  • 406
  • 4
  • 9