########
server{ listen 9002; server_name 192.168.119.140; client_max_body_size 1024M; location / { root /home/shiyongbin/html;######项目一 index index.html; try_files $uri $uri/ @router; } location @router { rewrite ^.*$ /index.html last; } ############## location /tangbao/ { alias /home/shiyongbin/ceshihtml/;######指向另一个html页面 index index.html; } ################################################### }
nginx的静态文件配置中,root和alias指令都能实现。为了避免混淆,尽量不要写没有根路径的url模式,即避免 static/
这样的开头,根路径的斜杠需要保留,没有根路径其实也很奇怪。
root和alias的区别主要在于替换的部分,root模式中,会把root配置的路径替换匹配后的url中的host。alias则把他指定的路径,替换url中匹配的部分。指令中的斜杠对于root指令没有影响,对于alise则按照替换规则匹配即可。
root 指令
location /dir/ root root_path -> http://host/dir/file.txt -> root_path/dir/file.txt
alias 指令
location /dir alias alias_path -> http://host /dir /file.txt -> alias_path/file.txt location /dir/ alias alias_path/ -> http://host /dir/ file.txt -> alias_path/file.txt
了解了root和alise之后,通常最佳实际是配置一个项目的根root,其他的文件夹则使用alias,毕竟alias更加灵活。