django 应用程序的 vps nginx 重定向设置不正确

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

我使用 vps、ubuntu 20、nginx、gunicorn 来运行 django 项目。 :8000 运行 django 应用程序。

我想运行 React(前端),/api/ django(后端)

sudo nano /etc/nginx/sites-available/default/:

root /home/ubuntu/client/build;

server {
    listen 80;
    server_name <my_ip>;
    access_log  /var/log/nginx/example.log;

    location /media/ {
        root /home/ubuntu/api;
        expires 30d;
    }

    location /static/ {
        root /home/ubuntu/api;
        expires 30d;
    }

    location /api/ {
        rewrite /api/(.*) /$1 break;
        proxy_pass http://<my_api>:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        try files $uri $uri /index.html
    }
}

前端、后端工作正常,静态和媒体工作正常。

但是当我进入 api/admin 页面时,我所有的 href 仍然指向根目录。

例如,当我按“orders”href时,我得到了< a href="/admin/orders/" >Orders的链接,我想获得“/api/admin/orders/”

我考虑过 /admin/ 重定向,但这是正确的决定吗?

我在gunicorn日志中看到很多未找到错误,因为链接不正确。

我可以用 nginx 修复它吗?或者在 django 设置中?

django ubuntu nginx gunicorn vps
1个回答
0
投票

您可以尝试在 nginx 配置中分离管理位置

location /admin/ {
    proxy_pass http://<my_api>:8000;
    proxy_set_header Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
} 
© www.soinside.com 2019 - 2024. All rights reserved.