, [1], - .
- , . , , Django.
, , Django ( , Auth), - , django. , URI, http://my.server.com/project_name/foo/bar/ [2]. , my.server.com /foo/bar ( / run.py runerver)
NGinx -, 80 443 . location - Nginx + Gunicorn .
nginx :
location /project_name {
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:7001/;
}
nginx + gunicorn , , , .
http://my.server.com/foo/bar/. Django, /project _name/prefix URL-, .
, , , :
USE_X_FORWARDED_HOST = True
FORCE_SCRIPT_NAME = '/project_name/'
Django , nginx , {% url name %} .
SESSION_COOKIE_PATH = '/project_name/'
, , ( ).
STATIC_FILES_ROOT='\path\on\disk\as\in\your\nginx\config\for\static\'
STATIC_FILES_URL='/project_name/static/'
MEDIA_FILES_ROOT='\path\on\disk\as\in\your\nginx\config\for\media\'
MEDIA_FILES_URL='/project_name/media/'
{% static blah%} .
LOGIN_REDIRECT_URL='/project_name/'
LOGOUT_REDIRECT_URL='/project_name/'
Auth / , . , url-conf, , admin
ADMIN_URL=r'^admin/'
urls.py:
url(settings.ADMIN_URL, include(admin.site.urls)),
, / , , , , , FORCE_SCRIPT_NAME.
, , , /, - URL ( ), Django.
, , , django , - , , .
, :
urlpatterns = [
url(r'^admin/?', admin.site.urls),
url(r'^app/?', include('app.urls')),
url(r'^$', views.index, name='index'),
]
, , , /home/root match come last. FORCE_SCRIPT_NAME .
[1], . django ; django ?; django suburl nginx
[2] SSL-, https, localhost ( ) http.