我的服务器上有几组静态.html
文件,我想直接使用nginx来服务它们。例如,nginx应该提供以下模式的URI:
www.mysite.com/public/doc/foo/bar.html
使用位于/home/www-data/mysite/public/doc/foo/bar.html
的.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
。
2条答案
按热度按时间rwqw0loc1#
它应该工作,然而http://nginx.org/en/docs/http/ngx_http_core_module.html#alias说:
当location与指令值的最后一部分匹配时:最好使用root指令:
这将产生:
dz6r00yl2#
你可以使用下面的代码。你也可以使用这个代码来服务vuejs或reactjs静态文件,只要修改
alias
指向你的文件目录的根;确保访问权限也是正确的。
sudo chown -R 1000 /files
如何访问文件
http://example.com/files/text-file.txt
的示例