在 Nginx 中为根目录下的附加目录内容提供服务

在 Nginx 中为根目录下的附加目录内容提供服务

使用 Nginx 和 Django,我的服务器配置中有以下位置条目:

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:1234;
}

因此,所有根 URL 请求都传递给 Django。

现在,我想在根 URL 下提供一些其他文件,例如robots.txtfavicon.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;
}

相关内容