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之查找命令find简介

    查找命令find简介    Linux使用过程中难免会遇到查找功能,类似于Windows中的搜索功能,如果想要找某个文件在什么地方,什么格式的文件等等。在Linux中我们可以使用find、locate、which、whereis等命令。接下来我们就简单说一下如何使用这几个命令查找文件。 一、which which命令的作用是,在PATH变…

    Linux干货 2015-05-18
  • N25-Week9

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);分别统计这两类用户的个数,通过字符串比较来实现 #! /bin/bash#写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);#分别统计这两类用户的个数#通过字符…

    Linux干货 2017-03-10
  • Linux Kernel

    Linux Kernel 概述:文章将主要介绍Linux 内核的相关信息,包括内核各组成部分的详细介绍,其中有内核信息的获取命令,uname;内核模块管理类命令:lsmod,modinfo,modprobe,insomd,rmmod;ramdisk生成的相关命令,mkinitrd和dracut命令;以及linux中的两个为文件系统 /proc和/sys。最后…

    Linux干货 2016-09-19
  • 高级文件系统管理的相关理解

    1.RAID是什么     RAID:Redundant Arrays of Inexpensive Disks,是指由多个磁盘合成一个阵列,来提供更好的性能,冗余或者两者都提供。在生产生活中,通常一个硬盘往往不能满足我们的存储需要,这是就需要通过RAID磁盘阵列来对磁盘进行“扩容”,来满足我们的日常需要,相比较于单一…

    Linux干货 2016-08-30
  • 磁盘管理之文件系统及管理工具

    磁盘管理之文件系统及管理工具    我们在之前的文章中讲到了硬盘的MBR与GPT分区,我们这篇文章来讲一下怎么使用工具对硬盘进行分区,硬盘的分区有什么区别,以及分区的管理。 管理分区   首先我们来看一下分区。那么什么是分区呢?简单的比喻一下,硬盘就像一个大房子,那么在向房间里放东西(比如家具)之前,它需要有一定的结构…

    Linux干货 2016-08-30
  • 马哥教育网络班20期第2周课程练习

    答: 1、 cp,mv,rm,cat(tac,more,less,tail),touch 其中常用的有: cp(复制):                   -i:交互式              -…

    Linux干货 2016-06-23