• nginx proxy_pass 指令


    nginx proxy_pass 指令

    文档

    Nginx 官方文档
    https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
    
    Nginx 服务器的反向代理 proxy_pass 配置方法讲解
    https://www.cnblogs.com/lianxuan1768/p/8383804.html 
    
    Syntax:	proxy_pass URL;
    Default:	—
    Context:	location, if in location, limit_except
    
    Sets the protocol and address of a proxied server and an optional URI to which a location should be mapped. As a protocol, “http” or “https” can be specified. The address can be specified as a domain name or IP address, and an optional port:
    
    A request URI is passed to the server as follows:
    
    # 如果 proxy_pass 指令指定了 URI ,则传给服务器的请求的 URI 中匹配 location 指令的部分将被去除掉。
    If the proxy_pass directive is specified with a URI, then when a request is passed to the server, the part of a normalized request URI matching the location is replaced by a URI specified in the directive:
    location /name/ {
        proxy_pass http://127.0.0.1/remote/;
    }
    
    # 如果 proxy_pass 指令没有指定 URI ,则传给服务器的请求的 URI 被原样传递。
    If proxy_pass is specified without a URI, the request URI is passed to the server in the same form as sent by a client when the original request is processed, or the full normalized request URI is passed when processing the changed URI:
    location /some/path/ {
        proxy_pass http://127.0.0.1;
    }
    

    测试应用的目录结构

    [root@localhost ~]# tree ROOT
    ROOT
    ├── proxy
    │   ├── mozq
    │   │   └── test.html
    │   ├── mozqtest.html
    │   └── test.html
    └── test.html
    

    请求的 url 都是 www.mozq.com/proxy/test.html

    所有请求的 uri 是 /proxy/test.html

    upstream tomcatserver {  
    	server  172.17.0.3:8080;
    }   
    server {  
        listen       80;  
        server_name  www.mozq.com;  
        location /proxy/ {  
            proxy_pass   http://tomcatserver/;  
            index  index.html index.htm;  
        }  
    } 
    #请求
    www.mozq.com/proxy/test.html
    # 实际访问
    /test.html
    
    server {  
        listen       80;  
        server_name  www.mozq.com;  
        location /proxy/ {  
            proxy_pass   http://tomcatserver/mozq/;  
            index  index.html index.htm;  
        }  
    } 
    #请求
    www.mozq.com/proxy/test.html
    # 实际访问
    /mozq/test.html
    
    server {  
        listen       80;  
        server_name  www.mozq.com;  
        location /proxy/ {  
            proxy_pass   http://tomcatserver;  
            index  index.html index.htm;  
        }  
    } 
    #请求
    www.mozq.com/proxy/test.html
    # 实际访问
    /proxy/test.html
    
    server {  
        listen       80;  
        server_name  www.mozq.com;  
        location /proxy/ {  
            proxy_pass   http://tomcatserver/mozq;  
            index  index.html index.htm;  
        }  
    } 
    #请求
    www.mozq.com/proxy/test.html
    # 实际访问
    /mozqtest.html
    

    总结

    请求: www.mozq.com/proxy/test.html
    请求的 URI 为: /proxy/test.html
    location: /proxy/
    
    proxy_pass: 带 URI 的情况。请求的 URI 中匹配 location 指定的部分被去除掉。请求的 URI 去除掉被 location 指令匹配的部分后为 test.html 。拼接。
        http://tomcatserver/		结果: http://tomcatserver/test.html
        http://tomcatserver/mozq	结果: http://tomcatserver/mozqtest.html
        http://tomcatserver/mozq/	结果: http://tomcatserver/mozq/test.html
        
    proxy_pass: 不带 URI 的情况。使用原请求的 URI 。拼接。
    	http://tomcatserver			结果: http://tomcatserver/proxy/test.html
    
  • 相关阅读:
    Entity Framework 程序设计入门二 对数据进行CRUD操作和查询
    LLBL Gen + Entity Framework 程序设计入门
    企业管理软件开发之九 以数据绑定为基础的控件只读,创建时可写,必须大写,必须小写的原理与实现
    企业管理软件开发之八 多国语言功能设计与实现
    解析.NET 许可证编译器 (Lc.exe) 的原理与源代码剖析
    实用的开放源码的Excel导入导出类库 CarlosAg ExcelXmlWriter
    .NET程序集强命名删除与再签名技术 源代码剖析
    ibatis.net:第七天,QueryWithRowDelegate
    ibatis.net:第六天,QueryForList
    ibatis.net:第五天,QueryForObject
  • 原文地址:https://www.cnblogs.com/mozq/p/11323192.html
Copyright © 2020-2023  润新知