成都创新互联网站制作重庆分公司

Nginx中的proxy_pass该怎么设置-创新互联

Nginx中的proxy_pass该怎么设置,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

从网站建设到定制行业解决方案,为提供成都网站设计、成都网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联建站将不断加快创新步伐,提供优质的建站服务。

Nginx很适合用做反向代理[ Reverse-Proxy]的,主要原因有以下几点。

Nginx的高性能特性,可以Hold住更多的连接数。

更加成熟的面向互联网的设计,可以增强后端服务器的安全性。

可以方便的对性能进行横向扩展,增强数据处理能力。

基于以上优点,那么该如何正确的配置Nginx反向代理?

分为两种情况

第一种情况: proxy_pass后面的指定带有URI

被location所匹配的URI将会被proxy_pass后面的URI所替换。举例如下,

location /requested-uri/ {

    proxy_pass http://example.com/backend/;

}

此时,如果请求的连接是, http://proxy-ip/requested-uri/a.html,则传输到后端的路径就会变成,http://example.com/backend/a.html

验证如下:

场景:在tomcat上创建了两个链接,分别是http://10.2.0.51:8000/zzp/app1 和 http://10.2.0.51:8000/zzp/app2 

两个链接分别显示不同的内容,app1 和 app2

然后我们在nginx中配置如下:

location /zzy/ {

                proxy_pass http://10.2.0.51:8000/zzp/;

}

这时,我们访问http://10.2.0.51/zzy/app1 时,就会发现会得到app1 ,说明zzy这个URI被zzp替换了。

第二种情况: proxy_pass后面不带URI时,则URI直接传输给了后端服务器。举例如下,

location /requested-uri/ {

    proxy_pass http://example.com;

}

此时如果请求的连接是,http://proxy-ip/requested-uri/a.html,则传输到后端的路径就会变成,http://example.com/requested-uri/a.html

验证如下:

接上个例子,我们在proxy_pass中不带有uri,此时我们访问zzy这个uri时,就会发现,404错误。

  location /zzy/ {

                proxy_pass http://10.2.0.51:8000;

}

Nginx中的proxy_pass该怎么设置

修改配置如下,

        location /zzp/ {

                proxy_pass http://10.2.0.51:8000;

        }

访问http://10.2.0.51/zzp/app1时,就调整好了。

Exceptions:

凡事总有例外,Nginx也是这样。

 特特例:1.1.12之前的版本,在某些情况下,不带URI的proxy_pass指令会被一些指令所取代。

一般特例:

当location后面带有正则表达式的时候,此时proxy_pass后面不带URI。

因为,如果location在有正则表达式的时候,nginx无法确定哪个部分的URI和表达式匹配。

当URI被用rewrite指令修改的时候,并且同样的配置将被用于处理一个请求。例如,这个好绕口。Boring

location /name/ {

rewrite /name/([^/]+) /users?name=$1 break;

proxy_pass http://127.0.0.1;

}

当prox_pass中使用了变量的时候,将会被以下替换。

location /name/ {

proxy_pass http://127.0.0.1$request_uri;

}

总而言之,只要我们不触碰exceptions发生的条件,我们就能达到自己的目的,如果不小心出现exceptions,那就来这里研究吧。

Basic is import , and should be studied in details.

关于Nginx中的proxy_pass该怎么设置问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联-成都网站建设公司行业资讯频道了解更多相关知识。


分享文章:Nginx中的proxy_pass该怎么设置-创新互联
转载来于:http://cxhlcq.com/article/gchsj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部