nginx location 块中各个命令的作用

nginx.conf 文件中 location,root,alias,rewrite 区别

location /reserve/web/dist/ {
    root   /usr/share/nginx/html/vue;
    index  index.html index.htm;
}

root 会把请求地址拼接在后面,变成:/usr/share/nginx/html/vue/reserve/web/dist/,

假如请求地址为:http://127.0.0.1/reserve/web/dist/index.html,就是 /usr/share/nginx/html/vue/reserve/web/dist/index.html

location /reserve/web/dist/ {
    alias   /usr/share/nginx/html/vue;
    index  index.html index.htm;
}

alias 会把请求地址去掉替换成:/usr/share/nginx/html/vue/

假如请求地址为:http://127.0.0.1/reserve/web/dist/index.html,就是 /usr/share/nginx/html/vue/index.html

location /reserve/web/dist/ {
    root   /usr/share/nginx/html/vue;
    # 重写规则,去除 _next
    rewrite ^/reserve/web/dist/_next/(.*)$ /reserve/web/dist/$1 break;
    index  index.html index.htm;
}
解释:^/reserve/web/dist/_next/(.*)$ 这部分是整体正则匹配,(.*)表示收集链接后面部分,替换成后面的 $1 里面,break; 表示不需要再拼接上面的 index

rewrite 会把匹配到的替换成指定的,以上写法,假如请求为:
http://127.0.0.1/reserve/web/dist/static/css/abc.css【则保持不变】
http://127.0.0.1/reserve/web/dist/_next/static/css/abc.css
【/reserve/web/dist/_next/会替换成/reserve/web/dist/,再拼接上,最后也是变成:http://127.0.0.1/reserve/web/dist/static/css/abc.css,相当于去掉 _next】

posted @ 2025-06-28 09:59  雪化山河  阅读(17)  评论(0)    收藏  举报