我有Django 2.2,正在尝试使用Nginx代理传递将其提供给http://myserver.com/application。
如果我尝试转到myserver.com/application/admin,则会立即重定向到myserver.com/admin。
这是我应该在Nginx或Django中指定的设置以避免这种情况吗? Django在gunicorn中运行,请参见Nginx.conf:
location /static {
alias /home/simernes/workspace/django_server/env/static;
}
location /application {
proxy_pass http://localhost:8000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_buffer_size 128k;
proxy_buffers 8 128k;
proxy_busy_buffers_size 256k;
}
最后,这就是我的urls.py在项目文件夹“后端”中的样子:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
FORCE_SCRIPT_NAME="/application"
STATIC_ROOT="/home/simernes/workspace/django_server/env/static/"
app_name='backend'
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^', include('api.urls', namespace='api')),
]
此外,当我进入myserver.com/application的根目录时,出现未找到404错误:
Using the URLconf defined in backend.urls, Django tried these URL patterns, in this order:
admin/
^ auth$ [name='auth']
The current path, /, didn't match any of these.
这不是我所期望的,因为我正在配置为显示我的api应用程序中可用的url(请参阅下面的urls.py),但这不是我对这个问题的主要关注,因此我只是为了更广泛的上下文而将其包括在内。
我还有一个名为api且带有URL的应用程序文件夹,该文件夹包含在后端:
from django.conf.urls import url
from rest_framework.authtoken import views as drf_views
app_name="api"
urlpatterns = [
url(r'auth$', drf_views.obtain_auth_token, name='auth'),
]
在此先感谢您的任何答复,我们将不胜感激。
答案 0 :(得分:0)
您还需要覆盖LOGIN_URL
,STATIC_URL
,LOGIN_REDIRECT_URL
和其他需要路径的设置