Nginx

在 Nginx 的根目錄下提供附加目錄內容

  • September 11, 2015

將 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 下的整個目錄提供服務,那就更好了。

只需將應用程序分解到它自己的@special 位置,然後先嘗試文件系統。

location / {
   root /var/www/project/misc;
   try_files $uri @wsgiapp;
}

location @wsgiapp {
   include uwsgi_params;
   uwsgi_pass 127.0.0.1:1234;
}

引用自:https://serverfault.com/questions/721780