nginx反向代理的context path
返回请求 uri
在 Nginx 中,可以使用 $request_uri 来表示请求 uri, 配置如下;
1 | server { |
这里再使用另一台 nginx 反向代理到这台 nginx 就可以测试请求的 uri 了。
测试 nginx 的反向代理 content path
1
1 | location / { |
结果是
curl localhost/a/b/ –> http://192.168.200.12/a/b/
2
1 | location /a { |
结果和上面一样,但是只有 /a 开头的才能转发到这里
3
1 | location /a/ { |
结果和上面一样,但是只有 /a/ 开头的才能转发到这里
4
1 | location /a { |
结果是:
1 | [root@master1 nginx]# curl localhost/a/b/c |
5
1 | location /a { |
结果是:
1 | [root@master1 nginx]# curl localhost/a |
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 许可协议。转载请注明来源 杂烩饭!
评论