加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

如何在子路径中托管Django项目?

发布时间:2020-12-13 21:30:14 所属栏目:Nginx 来源:网络整理
导读:我正在建立一个Django REST framework的API,通过Gunicorn和Nginx提供服务.项目“exampleproject”必须在子路径上运行,例如:https://100.100.100.100/exampleproject(示例IP地址).我没有为IP注册的域名. 目前,起始页面在https://100.100.100.100/exampleproj

我正在建立一个Django REST framework的API,通过Gunicorn和Nginx提供服务.项目“exampleproject”必须在子路径上运行,例如:https://100.100.100.100/exampleproject(示例IP地址).我没有为IP注册的域名.

目前,起始页面在https://100.100.100.100/exampleproject处按预期呈现.但是“产品”的资源路径不起作用.而不是https://100.100.100.100/exampleproject/products,起始页面显示https://100.100.100.100/products – 这不起作用.

我在/ etc / nginx / sites-enabled / default中配置了exampleproject的子路径,如下所示:

server {

    # ...

    location /exampleproject/ {
        proxy_pass        http://localhost:8007/;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  Host $host;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto $scheme;
    }

当我手动访问https://100.100.100.100/exampleproject/products时,Nginx会在/var/log/nginx/access.log中记录以下内容:

“GET /products/ HTTP/1.1” 404 151 “-“

最佳答案
我发现here需要在settings.py中为Django的配置添加以下设置:

FORCE_SCRIPT_NAME = '/exampleproject'

这似乎重写了嵌套资源的所有路径.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读