使用 nginx 在一台服务器上托管多个 django 应用程序/docker。返回根路径而不是应用程序的路径

问题描述 投票:0回答:1

我有一个 Django 应用程序。 view.py 中函数 load_form(request) 的代码片段。

def load_form(request):
    if request.method == 'POST':
        newQAForm = QAForm(request.POST)
        if newQAForm.is_valid():
            instance = newQAForm.save(commit=False)
            instance.save(using='RadDataWarehouse')
            return redirect('confirmation')

还有另一个功能

def confirmation(request):
    return render(request, 'confirmation.html')

在本地运行良好。将表单保存到数据库后,它会将其定向到

http://127.0.0.1:8000/confirmation/

我将其部署到linux服务器后。将其保存到数据库后遇到问题。它将直接指向

https://abcdomain.com/confirmation/
。但我想它会去
https://abcdomain.com/protocolqa/confirmation/
。 反向代理的
nginx.conf
如下:


    location /protocolqa/ {
            proxy_pass http://localhost:8511/;
            proxy_http_version 1.1;
            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 $scheme;
            proxy_set_header X-Script-Name /protocolqa;
            proxy_set_header X-Original-URI $request_uri;
        }

如何修复它并让它变得

https://abcdomain.com/protocolqa/confirmation/

django linux docker nginx web-hosting
1个回答
0
投票

我改成这个后,就可以了。

   def confirmation(request):            
        return render(request, 'confirmation.html')
© www.soinside.com 2019 - 2024. All rights reserved.