使用 Nginx 和 Django,我的服务器配置中有以下位置条目:
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:1234;
}
因此,所有根 URL 请求都传递给 Django。
现在,我想在根 URL 下提供一些其他文件,例如robots.txt
、favicon.ico
以及不确定数量的其他文件。例如,/robots.txt
应该返回我的robots.txt
文件,该文件位于/var/www/project/misc/
。如何在 Nginx 中执行此操作?我似乎无法有多个位置来捕获根 URL“/”。
我知道,我可以这样做:
location /robots.txt {
alias /var/www/project/misc/robots.txt;
}
但是,我们讨论的是很多不同的文件,为所有文件添加一个额外的位置似乎有点笨拙。如果有一种方法可以简单地在根 URL 下提供整个目录,那就更好了。
答案1
只需将应用程序放入它自己的@special 位置,然后先尝试文件系统。
location / {
root /var/www/project/misc;
try_files $uri @wsgiapp;
}
location @wsgiapp {
include uwsgi_params;
uwsgi_pass 127.0.0.1:1234;
}