我正在尝试部署一个以 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 处理的...有什么建议吗?非常感谢
好吧,发现问题是我的默认conf nginx的位置/与我的位置/admin/重叠
可能会帮助任何陷入困境的人