我尝试设置Nginx+Gunicorn当我通过我的 URL 访问时Nginx将请求重定向到我的应用程序并自行处理静态资源(static
文件夹)。以下是我的 Nginx 域配置:
server {
listen 80;
server_name asknow.local www.asknow.local;
root /home/ghostman/Projects/asknow/asknow;
location = /favicon.ico { access_log off; log_not_found off; }
location = /static/ {
root /home/ghostman/Projects/asknow/asknow;
}
location = / {
include proxy_params;
proxy_pass http://unix:/home/ghostman/Projects/asknow/asknow/asknow.sock;
}
}
我需要解决的问题Nginx仅处理static
( www.asknow.local/static
) 的请求,但它也会尝试处理其他 URL。因此,当我转到www.asknow.local/admin
nowNginx尝试通过路径查找资源(my_project/admin
)。
Nginx 日志
2017/11/01 04:27:22 [error] 13451#13451: *1 open() "/usr/share/nginx/html/static/img/search.svg" failed (2: No such file or directory), client: 127.0.0.1, server: asknow.local, request: "GET /static/img/search.svg HTTP/1.1", host: "www.asknow.local"
如何修复?
答案1
删除等号 (=)从
location = / {
include proxy_params;
proxy_pass http://unix:/home/ghostman/Projects/asknow/asknow /asknow.sock;
}
从“= /”中删除“=”
基本上,您只匹配了此位置块的主页,因此只有针对“/”的请求才会发送到 django。因此,“/admin”将不是发送到代理/django。我遇到了和你完全相同的问题,你是唯一与之相关的问题。希望这能帮助你和后来遇到和我一样问题的人:)
对于来自未来的时间旅行者来说,他们的“django 正在运行,url 被重定向但无法显示页面;这个页面可能会帮助你