Используйте nginx для обслуживания статических файлов из подкаталогов данного каталога
у меня есть несколько наборов статических .html
файлы на моем сервере, и я хотел бы использовать nginx для их непосредственного обслуживания. Например, nginx должен служить URI следующего шаблона:
www.mysite.com/public/doc/foo/bar.html
С .html
файл, который находится по адресу /home/www-data/mysite/public/doc/foo/bar.html
. Вы можете думать о foo
как имя набора, и bar
как имя файла здесь.
интересно, будет ли следующая часть конфигурации nginx выполнять эту работу:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
alias /home/www-data/mysite/public/doc/;
}
location = /404.html {
alias /home/www-data/mysite/static/html/404.html;
}
}
другими словами, все запросы шаблон /public/doc/.../....html
будут обрабатываться nginx, и если какой-либо заданный URI не найден, по умолчанию www.mysite.com/404.html
возвращается.
1 ответов
Он должен работать, однако http://nginx.org/en/docs/http/ngx_http_core_module.html#alias говорит:
когда местоположение соответствует последней части значения директивы: вместо этого лучше использовать директиву root:
что бы выход:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
root /home/www-data/mysite;
}
location = /404.html {
root /home/www-data/mysite/static/html;
}
}