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
下一篇 2017-01-13

相关推荐

  • Linux下常用压缩工具总结

    gzip: 1)只能针对普通文件进行压缩,对文件夹、符号链接无效。 2)如果想对多个文件一起压缩并打包,gzip是无法办到的,需要结合tar进行 [root@mysql-master databackup]# ll 总用量 32 drwx—— 2 root root 4096&nb…

    Linux干货 2016-12-05
  • 8.3号,第6天

    三种权限rwx对文件和目录的不同意义: 权限对于目录的意义: 1,r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。 2、w权限:拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:      …

    Linux干货 2016-08-05
  • 马哥教育网络班22期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode) 控制屏幕光标的移…

    Linux干货 2016-09-26
  • shell脚本编程的一些好习惯

    shell脚本编程的一些好习惯 1.命名规则   脚本命名以.sh结尾,名称尽量见名之意。以下是几种可供参考的脚本命名风格。通过以下清新脱俗的风格,读者能够很easy的明白脚本的作用。 clearlog.sh ClearLog.sh clearSql.sh snmp_install.sh Monitor.sh 2.脚本信息   为脚本加入…

    Linux干货 2017-04-14
  • 初学Linux之快速获取帮助

    Windows操作系统和Linux操作系统的界面区别,导致了初学Linux时,我们会遇到比较大的障碍。Windows操作系统时图形这种形象化的操作界面,而Linux则不同,时以字符界面为主的。当我们遇到困难,我们可以获取系统提供的帮助信息,越过我们遇到的障碍,快速的熟悉Linux。获取帮助的方法包括:Linux手册(man),命令的帮助页,info帮助。

    2017-11-19
  • mongodb及NoSQL入门学习总结

    分布式系统理论 一、 CAP: 分布式系统只能够,满足其中两个  1. Consistency : all nodes see the same data at the same time 一个节点修改后,需马上复制到第二个节点。如果网络故障,第二个节点将不能同步第一个节点更新的数据。这就是不能满足一致性。 2. Availibility:a guarant…

    2017-09-14