繁体   English   中英

Nginx在子目录中提供Django - admin login是重定向的

[英]Nginx serving Django in subdirectory - admin login is redirecting

我必须从子目录(hostname / service /)提供Django应用程序。 到目前为止,我可以进入Admin Login提示符(hostname / service / admin / login /?next = / admin /),但成功登录后我被重定向到(hostname / admin / login /)并获取一个404。
如何保留正确的子目录并进入“管理”面板?

这是nginx.conf服务器块:

server {
    listen 80;
    root  /usr/share/nginx/html/;
    charset utf-8;

    location /service {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://djangoapp:8000/;
      proxy_set_header X-Real-IP $remote_addr;
    }

    location /static {
        alias /usr/src/app/static;
    }
}

编辑:这些是来自urls.py的urlpatterns:

from django.conf.urls import url, include
from django.contrib import admin

# A custom view of my own
from app.views import AdvanceCustomSearchView

urlpatterns = [
  url(r'^search/$', AdvanceCustomSearchView(), name='index_search'),
  url(r'^app/', include('app.urls')),
  url(r'^admin/', admin.site.urls),
]

您需要将FORCE_SCRIPT_NAME设置添加到您的settings.py中:

FORCE_SCRIPT_NAME = '/service'

请注意,最后没有斜线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM