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号