nginx反向代理的context path
返回请求 uri
在 Nginx 中,可以使用 $request_uri
来表示请求 uri, 配置如下;
1 | server { |
这里再使用另一台 nginx 反向代理到这台 nginx 就可以测试请求的 uri 了。
测试 nginx 的反向代理 content path
1
1 | location / { |
结果是
curl localhost/aa/bb/
–> http://192.168.200.12/aa/bb/
2
1 | location /aa { |
结果和上面一样,但是只有 /aa 开头的才能转发到这里
3
1 | location /aa/ { |
结果和上面一样,但是只有 /aa/ 开头的才能转发到这里
4
1 | location /aa { |
结果是:
1 | [root@master1 nginx]# curl localhost/aa/bb/cc |
5
1 | location /aa { |
结果是:
1 | [root@master1 nginx]# curl localhost/aa |
nginx 的 alias
Nginx 的 alias 指令可以理解为“路径别名”,它能把用户访问的 URL 路径直接映射到服务器上的另一个真实目录。举个例子:
假设你配置了:
1 | location /images/ { |
当用户访问 http://你的网站/images/cat.jpg
时,Nginx 会直接去服务器上的 /var/www/my_photos/cat.jpg
找文件,而不会保留 URL 中的 /images/
路径。
和另一个指令 root 的区别在于:
用 root 时,路径是追加(比如 location /a/ { root /b; },访问 /a/1.jpg
会找 /b/a/1.jpg
)
用 alias 时,路径是替换(同样配置下,访问 /a/1.jpg
会直接找 /b/1.jpg
)
需要注意:配置时路径末尾的 /
要统一,比如 location /images/
和 alias /var/www/my_photos/
都要带斜杠,否则可能导致路径错误
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论