Nginx proxy_pass后的url加不加/的区别

nginx配置proxy_pass,需要注意转发的路径配置:

第一种:proxy_pass后缀不加斜杠

location /abc/ {            proxy_pass http://172.16.1.38:8080;     }

第二种:proxy_pass后缀加斜杠

location /abc/ {                proxy_pass http://172.16.1.38:8081/;     } 

上面两种配置,区别只在于proxy_pass转发的路径后是否带 /

针对情况1 :如果访问url = http://server/abc/test.jsp,则被nginx代理后,请求路径会便问http://proxy_pass/abc/test.jsp,将test/ 作为根路径,请求test/路径下的资源

针对情况2 :如果访问url = http://server/abc/test.jsp,则被nginx代理后,请求路径会变为 http://proxy_pass/test.jsp,直接访问server的根资源

典型实例:

worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;upstream app{    server 172.16.1.38:8233;}upstream online{    server 172.16.1.38:8239;}server {    listen       881;    server_name  IP;    location /bxg/user/ {        root   /root;        index  index.html index.htm;        proxy_set_header Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        client_max_body_size 100m;        proxy_pass  http://online;解释:当我们访问http://IP/881/bxg/user/下面的资源,nginx会帮我们跳转到online下面对应的IP+端口此时返回的url =http://IP/881/bxg/user/1.txt    }    location /bxg/app/ {        proxy_set_header Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        client_max_body_size 100m;        proxy_pass  http://app/;解释:当我们访问http://IP/881/bxg/app/下面的资源(此时proxy_pass后面带斜杠),nginx也会帮我们跳转到app下面对应的IP+端口此时返回的url =http://IP/881/1.txt    }#这行属于默认匹配,就是后面什么也不添加,881端口就直接调用这个项目    location / {        root   /root;        index  index.html index.htm;        proxy_set_header Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        client_max_body_size 100m;        proxy_pass  http://app;    }}

提示:这种location常用于只有一个公网IP和端口场景,内网IP没有进行映射,但是又需要请求我们的内网服务器的服务,就可以使用location的模式。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏XAI

修改UCenter用户名长度限制的方法php程序和数据库修改

做了discuz api for java  第三方应用项目的注册登陆。 但是在修改用户名长度的时候。出现了小bug。找到解决发现是自身原因。 ? 在discu...

287100
来自专栏雨过天晴

转 Mac OS/Linux命令查询网络端口占用情况

14630
来自专栏云计算教程系列

在Linux中使用find命令行查找文件

find是一个基于条件机制递归过滤文件系统中对象的命令。使用find搜索文件系统中的文件或目录。使用-exec标志,可以在同一命令中找到并立即处理文件。

13320
来自专栏我的技术专栏

vi 方向键和Backspace键失效问题的解决方法

10520
来自专栏vue

将java项目打包成jar文件并在cmd运行

26130
来自专栏运维小白

4.9 手动增加swap空间

创建虚拟磁盘 dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 dd 命令是用来操作磁盘的,可读可写 if 指定...

66270
来自专栏点滴积累

Docker Swarm——集群管理

前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm ...

41770
来自专栏月牙寂

swarm源码分析(3)---manage cluster

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

27950
来自专栏lgp20151222

…… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)

1、在项目中创建一个package为org.springframework.core 2、在该package下面新建JdkVersion.java,内容如下...

29110
来自专栏面朝大海春暖花开

properties文件乱码问题 eclipse

java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单。

53020

扫码关注云+社区

领取腾讯云代金券