Nginx 反向代理 proxy_url 加 / 和不加 / 的区别

本贴最后更新于 732 天前,其中的信息可能已经时过境迁

前言

Nginx 反向代理经常配,不过一直没搞清楚加/和不加/的区别,今天研究一下,做一下记录

URL 和 URI

要先搞清楚这两个概念:

URL 是完整的访问路径,包含 协议、域名(IP) 、端口、资源路径,比如:

URI 是去掉了协议、域名(IP)、端口之后剩下的东西。

比如上面的/index.html 就是 URI

所以 URI 是 URL 的一部分,URL 包含 URI

Nginx proxy_url

搞清楚了 URL 和 URI,我们再来看 proxy_url

一般有两种情况:proxy_url 带 uri 和不带 uri

举个例子:

http://127.0.0.1 不带uri http://127.0.0.1:8080 不带uri https://www.abc.com:9889 不带uri http://127.0.0.1/ 带uri, 后面只有有/都算uri

其实很简单,就看 proxy_url 后面带不带/,只要带了,就是包含 uri

proxy_url 不带 uri 的情况

会完整的代理 location

举个例子:

server {   listen 80;   server_name www.baidu.com;   location /article/ {   proxy_pass http://127.0.0.1:8080;   } } 访问 http://www.baidu.com/article/1.html 实际转发的路径是 http://127.0.0.1:8080/article/1.html

proxy_url 带 uri 的情况

使用 proxy_url 中的 uri 替换 location

举个例子:

server {   listen 80;   server_name www.baidu.com;   location /article/ {   proxy_pass http://127.0.0.1:8080/;   } } 此时 proxy_pass的uri是/,所以当匹配的时候,使用/替换 /article/ 访问 https://www.baidu.com/article/1.html 实际转发路径是 http://127.0.0.1:8080/1.html

location

location 中 也会出现 加/和不加/的情况,这个相对简单,主要涉及是否匹配的问题

举几个例子:

location /article { proxy_pass http://127.0.0.1:8080; #访问 http://localhost/article/1.html ==> http://127.0.0.1:8080/article/1.html } location /article/ { #注意访问http://localhost/article 不会匹配,至少要包含/article/才行 proxy_pass http://127.0.0.1:8080; # 访问http://localhost/article/1.html ==> 127.0.0.1:8080/article/1.html } location /article/ { # 注意不会匹配localhost/article proxy_pass http://127.0.0.1:8080/; # 访问http://localhost/article/ ==> 127.0.0.1:8080/ # 访问:http://localhost/article/123 ==> 127.0.0.1:8080/123 } location /article { proxy_pass http://127.0.0.1:8080/; # 访问http://localhost/article1.html ==> 127.0.0.1:8080/1.html # 访问http://localhost/article/1.htl ==> 127.0.0.1:8080//1.html }

第 1、2、3 种写法比较常见~

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 2 关注
  • 代理
    46 引用 • 103 回帖
  • 反向代理
    9 引用 • 38 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...