MLi*_*ter 51 nginx static-files
我的.html服务器上有几组静态文件,我想使用nginx直接提供它们.例如,nginx应该提供以下模式的URI:
www.mysite.com/public/doc/foo/bar.html
Run Code Online (Sandbox Code Playgroud)
使用.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;
}
}
Run Code Online (Sandbox Code Playgroud)
换句话说,模式的所有请求/public/doc/.../....html都将由nginx处理,如果找不到任何给定的URI,www.mysite.com/404.html则返回默认值.
cob*_*aco 77
它应该工作,但http://nginx.org/en/docs/http/ngx_http_core_module.html#alias说:
当location匹配指令值的最后一部分时:最好使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码。您还可以使用此代码来提供vuejs或reactjs静态文件,只需将modifilealias指向文件目录的根目录即可;
location /files {
#autoindex on;
alias /files;
try_files $uri /index.html =404;
}
Run Code Online (Sandbox Code Playgroud)
确保访问权限也正确。
sudo chown -R 1000 /files
有关如何访问文件的示例http://example.com/files/text-file.txt
| 归档时间: |
|
| 查看次数: |
110546 次 |
| 最近记录: |