proxy_pass转发路径

一、引言

在nginx中配置proxy_pass时,proxy_pass后面的路径最后面加“/”和不加“/”会有所区别。加“/”时,nginx不会代理location部分,不加“/”时,nginx会同时代理location部分。下面通过实验来证明。

二、实验

实验环境简要说明:

    node1为httpd服务器(172.16.47.101)

    node2为客户端(172.16.47.102)

    node3为nginx代理服务器,自身不对外提供web服务(172.16.47.103)

以下四个例子都是通过http://172.16.47.103/admin/index.html这个地址来访问。

node1网站目录结构如下:每个目录下面的index.html页面的内容都是该页面相对于/var/www/的路径。

[root@node1 /var/www/html]# tree
.
├── abc
│   ├── admin
│   │   └── index.html
│   └── index.html
├── abcindex.html
├── admin
│   └── index.html
└── index.html

3 directories, 5 files
[root@node1 /var/www/html]#

1.第一种情况:

location /admin/ {
       proxy_pass      http://172.16.47.101/;
    }

会被代理到http://172.16.47.103/index.html,访问结果如下

blob.png

2.第二种情况:(注意,相对于第一种情况,路径后面少了一个“/”)

 location /admin/ {
        proxy_pass      http://172.16.47.101;
    }

会被代理到http://172.16.47.103/admin/index.html,访问结果如下

blob.png

3.第三种情况:

location /admin/ {
        proxy_pass      http://172.16.47.101/abc/;
    }

会被代理到http://172.16.47.103/abc/index.html,访问结果如下

blob.png

3.第四种情况:(注意,相对于第三种情况,路径后面少了一个“/”)

location /admin/ {
        proxy_pass      http://172.16.47.101/abc;
    }

会被代理到http://172.16.47.103/abcindex.html,访问结果如下

blob.png

以上,proxy_pass后面的路径最后面加“/”和不加“/”在写法上,差别很小,很多人没写时会没留意到,但带来的结果却大不一样,在使用中千万要留心。

原创文章,作者:Lurker,如若转载,请注明出处:http://www.178linux.com/66487

(1)
LurkerLurker
上一篇 2017-01-12 23:09
下一篇 2017-01-13 09:19

相关推荐

  • Linux第五周总结

    1、显示当前系统上root、fedora或user1用户的默认shell 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); 3、使用echo命令输出一个绝对路径,使用gerp取出其基名;     扩展:取出其路径名 4、找出ifconfig命令结果中的…

    2017-07-30
  • 基础指令的使用篇3 Linux版

    / /boot /bin /sbin /lib.modules /lib64 /etc/redhat-release /etc/centos-release /home/zczx /mnt /media /misc /proc/meminfo /proc/cpuinfo /proc/partition /sya /opt /tmp /usr/local/ /…

    Linux干货 2016-08-04
  • N23-第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell。 [root@localhost ~]# cat /etc/passwd | egrep "^root\>" | cut -d: -f1,7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hell…

    Linux干货 2016-12-05
  • 干货 | 20 行 Python 代码创建可视化地图

    当我开始建造Vincent时, 我的一个目的就是使得地图的建造尽可能合理化. 有一些很棒的python地图库-参见Basemap 和 Kartograph能让地图更有意思. 我强烈推荐这两个工具, 因为他们都很好用而且很强大. 我想有更简单一些的工具,能依靠Vega的力量并且允许简单的语法点到geoJSON文件,详细描述一个投影和大小/比列,最后输出地图. …

    2017-09-08
  • 前三天基础-Linux文件系统概论

    Linux之我见     在2016农历丙申年2016年猴年,对于小白的我来说接触到了江湖流传的武功秘籍之-Linux心法,第一次接触到命令行,知道在键盘上随便敲击命令就可以满屏跑数据,就像看过的美国大片里黑客帝国里面的画面,感觉学会好后可以装逼了,废话不多说了,允许在下斗胆介绍Linux文件系统。     &nbsp…

    Linux干货 2016-03-24
  • 马哥教育网络班21期第六周作业

    详细总结VIM编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加# cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s/^[[:space:]]\+/#/…

    Linux干货 2016-08-22