网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Nginx中的proxy_pass该怎么设置

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

新会ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

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://bjjierui.cn/article/jghoei.html

其他资讯