nginx中proxy_pass的使用(alias和root使用)

nginx中proxy_pass的使用(alias和root使用)

前面我们一起学习了location的匹配规则,如果还不了解的话可以参考我这边文章(nginx中location的使用),今天一起来学习nginx中proxy_pass的匹配过程,也是非常简单

proxy_pass匹配主要分两种情况

1、proxy_pass代理的url后面只有ip(域名)+端口,其他什么都没有(包括”/”都不能有)

此时代理的路径需要把请求的url中ip+port后面的路径追加到proxy_pass后面

例如:

假设http的请求路径为:http://123.25.95.148:9998/nginx/hello?name=taolong

nginx配置文件内容

server {
        listen       9998;
        server_name     123.25.95.148;
    
     	#匹配规则
        location /nginx {
               proxy_pass http://123.25.95.148:10010;
        }
   

}

此时

proxy_pass后面的url=http://123.25.95.148:10010,没有任何内容

这是就需要将http请求路径中的 “nginx/hello?name=taolong”内容追加到proxy_pass的url后面

最终代理的路径为:http://123.25.95.148:10010/nginx/hello?name=taolong

2、proxy_pass代理的url后面除了ip(域名)+端口,还有其他的内容

此时的匹配逻辑,就需要将请求中的未匹配到location的内容追加到proxy_pass的url后面

例如:

假设http的请求路径为:http://123.25.95.148:9998/nginx/hello?name=taolong

nginx配置文件的内容如下:

server {
        listen       9998;
        server_name     123.25.95.148;
    

     	#匹配规则
        location /nginx/hello {
        	   #注意这里是“/”结尾,请求url中未匹配的内容:?name=taolong
               proxy_pass http://123.25.95.148:10010/hello;
        }
        #此时上面输出的结果:http://123.25.95.148:10010/hello?name=taolong
	
		#匹配规则
        location /nginx {
        	   #注意这里是“/”结尾,请求url中未匹配的内容:/hello?name=taolong
               proxy_pass http://123.25.95.148:10010/;
        }
        #此时上面输出的结果:http://123.25.95.148:10010/hello?name=taolong
}

proxy_pass就到上面就结束了,下面顺带提一下nginx还有一种类似上面的情况,就是root和alias的使用

root和alias使用

当使用root时,就类似上面第一种情况,直接对应到root指定的目录

当使用alias时,就类似上面的第二种情况,将为匹配的内容追加到alias的url后面

		#测试路径:/root
        #定位的内容:/etc/nginx/html/root/a.html;
        location /root {
                root /etc/nginx/html;
                index a.html;
        }


        #测试路径:/root/test
        #定位的内容:/etc/nginx/html/root/test/b.html;
        location /root/test {
                root /etc/nginx/html;
                index a.html;
        }


        #测试路径:/alias/test/a
        #定位的内容:/etc/nginx/html/test/a/b.html
        location /alias {
                alias /etc/nginx/html;
                index b.html;
        }


        #测试路径:/alias/test/
        #定位的内容:/etc/nginx/html/a.html
        location /alias/test {
                alias /etc/nginx/html;
                index a.html;
        }
·		#正则$1表示第一次匹配的路径变量对应匹配的.*的内容
        #测试路径/aliasregex/test   ---》定位的内容/etc/nginx/html/test/a.html
        #测试路径/aliasregex/a   ---》定位的内容/etc/nginx/html/a/a.html
        location ~ /aliasregex/(.*) {
            alias /etc/nginx/html/$1;
            index a.html;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111214.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TCP协议和UDP协议

    TCP协议和UDP协议1.传输控制协议TCP1.1TCP的主要特点:1.1.1面向连接的运输层协议socket部分讲述tcp连接的建立tcp连接的释放tcp的有限状态机1.1.2每一条TCP连接只能有两个端点,每一条TCP链接只能是点对点的(一对一)1.1.3TCP提供可靠交付的服务可靠传输的工作原理可靠传输的实现流量控制拥塞控制1.1.4TCP提供全双工通信1.1.5面向字节流流式服务的特点1.2与TCP有关的面试问题2.用户数据报协议UDP2.1UDP协

    2022年6月7日
    41
  • nacicat 15激活码(最新序列号破解)

    nacicat 15激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    40
  • android开发股票数据接口,股票数据接口-股票数据接口api「建议收藏」

    原标题:股票数据接口-股票数据接口api量亿数据专注金融领域API数据接口,其中包括期货、股票、期权、外汇等,只需要注册即可申请使用。免费申请网址:http://www.liangyee.com/如何获取股票数据,股票数据接口-股票数据接口api,以美股API数据接口为例。5分钟K线接口地址:http://stock.liangyee.com/bus-api/USStock/marketData/…

    2022年4月7日
    47
  • 【图文讲解】映射——单射-双射-满射概念

    【图文讲解】映射——单射-双射-满射概念最近看的一篇论文里出现了partialmap的概念,用我的散装英文乍一翻译——“部分映射”?印象中高中和大一的高数书里都讲过,但一些概念已经忘差不多了(罪过罪过–),索性重新熟悉一下。百度,发现“部分映射”这个词在百度词条里没能拥有百分百匹配的姓名。Wikipedia维基百科里给出的是一个很相似的英文词汇,partialfunction。以…

    2022年5月1日
    554
  • Snmp学习笔记

    Snmp学习笔记

    2021年11月30日
    35
  • java基础菜鸟教程容器类,复习指南[通俗易懂]

    java基础菜鸟教程容器类,复习指南[通俗易懂]面试官最爱问的Kakfa,基础+进阶+高级,疯狂轰炸!Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息

    2022年6月28日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号