nginx root alias proxypass
在 Nginx 中,root 和 alias 都是用于指定请求对应的文件系统路径的指令,但它们的工作方式和配置逻辑有显著区别,主要体现在路径拼接方式上。
1. 核心区别:路径拼接逻辑
2. 配置示例对比
(1)使用 root 配置
location /static/ {
    root /var/www;  # root路径为 /var/www
}(2)使用 alias 配置
location /static/ {
    alias /var/www/;  # alias路径为 /var/www/
}
3. 其他关键区别
| 特性 | root | alias | 
|---|---|---|
| 适用场景 | 用于匹配目录(推荐带 /),适合整个站点或目录的根路径映射。 | 用于替换特定路径(必须精确匹配,推荐带 /),适合别名映射(如短路径指向长路径)。 | 
| 路径末尾 / | 可选,但建议目录路径带 /以避免歧义。 | 必须严格匹配:如果 location以/结尾,alias也必须以/结尾,否则可能导致路径错误。 | 
| 正则 location | 支持(但需注意正则匹配的路径拼接)。 | 不支持, alias不能用于正则表达式的location中(会报错)。 | 
| 默认索引文件 | 若请求目录,会自动查找 index指令指定的文件(如index.html)。 | 同样支持 index,但需确保alias路径下存在对应文件。 | 
一般情况下,在location /中配置root,在location /other中配置alias。
proxy_pass 最后带上/会把匹配的部分吃掉,没有带上/会把匹配的东西也带上
下面四种情况分别用http://192.168.1.4/proxy/test.html 进行访问。
第一种:
会被代理到http://127.0.0.1:81/test.html 这个url
 
第二咱(相对于第一种,最后少一个 /)
会被代理到http://127.0.0.1:81/proxy/test.html 这个url
 
第三种:
会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。
 
第四种情况(相对于第三种,最后少一个 / ):
会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url
第五种情况
location /oms_api {
proxy_pass http://omsapi/;
域名/oms_api/123===http://omsapi/123
第六种情况
location /api {
proxy_pass http://10.200.25.79:8038;
http://hexpress-ui.test.ydjia.cn/api/MainWeb/GetSUserBase ===http://10.200.25.79:8038/api/MainWeb/GetSUserBase
    要有多努力才能对得起奔波的脚步和身上的期望

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号