Nginx 没有重定向到我的 DRF 后端(Vue js 前端)

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

我正在尝试部署一个以 DRF 作为后端的 Vue 应用程序。我正在使用 Nginx 和 Gunicorn。

Gunicorn 正在运行并提供服务

http://127.0.0.1:8000
。例如,如果我从 vps 中执行
curl http://127.0.0.1:8000/api/posts
,我实际上得到了空数组(还没有帖子,但意味着它正在工作)。但是,如果我运行
https://mywebsite.com/api/posts
我只会加载前端 vue。问题是我想访问我的 django 面板。所以目标是让“https://mywebsite.com/admin”允许我访问 Django 管理面板。

我尝试在

sites-available
中的 nginx 文件中实现位置重定向。

这是 nginx conf 文件:

    listen 80;
    server_name mywebsite.com www.mywebsite.com;

    # Redirect all HTTP traffic to HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mywebsite.com www.mywebsite.com;

    # SSL configuration
    ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem;

    # Optional security settings
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    ssl_ciphers "FHFHFOK-JDJFFJKKFF-JFDJFFKFKFK">

    location /admin/ {
        proxy_pass http://127.0.0.1:8000;  # Address where Gunicorn is running
        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;
    }

    root /var/www/mywebsite/dist;
    index index.html;

    location /static/ {
        alias /var/www/mywebsite/blogproject/staticfiles/;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:8000;  
        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;
    } 

检查 nginx 的日志,每个对

/admin/
的请求都是由 vue js 而不是gunicorn 处理的...有什么建议吗?非常感谢

vue.js nginx django-rest-framework gunicorn nginx-reverse-proxy
1个回答
0
投票

好吧,发现问题是我的默认conf nginx的位置/与我的位置/admin/重叠

可能会帮助任何陷入困境的人

© www.soinside.com 2019 - 2024. All rights reserved.