• nginx 正向代理与反向代理


    一.介绍

    反向代理让Internet上的用户可以访问局域网内的资源,中间设置一个代理服务器,如下所示,红色圈是指局域网内的站点(myweb站点是我们的站点,例如iis)。箭头不能反过来

    正向代理客户端(我们代理客户端)访问Internet上的站点。中间设置一个代理服务器,如下所示,红色圈是指局域网内的客户端(我们的客户端)。箭头不能反过来。

    总结:

      正向代理是指:我们代表局域网客户端,向Internet上获取资源,中间正向代理。

      反向代理是指:我们代表局域网服务端,Internet上的客户端请求资源,中间使用反向代理。

          

      反向代理是最常见的重要功能之一,应用广泛,涉及的配置指令比较多。ngx提供的反向代理也是比较高效的,它能同时接收客户端连接由worker_processes指令和worker_connections指令决定。

      

      反向代理与正向代理都有http块,server块或者location块。区别是单独配置server块用来反向代理或正向代理。

    二.反向代理的基本设置的21个指令

       讲最重要的一个proxy_pass指令

      1.proxy_pass指令

        被代理服务器的地址(分发到如:IIS),可以是主机名称,ip地址加端口号等形式。语法结构为

        proxy_pass url;

        传输协议通常是http://,或https://。例如

        proxy_pass  http://www.myweb.name/uri;

        proxy_pass  http://localhost:8080/uri;

        proxy_pass  http://192.168.2.211:8080/uri;

        如果被代理服务器是一组服务器的话,可以用upstream指令配置后端服务器组,做高可用负载分发,例如:

    upstream proxy_svrs
    {
        server http://192.168.1.1:8001;
        server http://192.168.1.2:8001;
        server http://192.168.1.3:8001;
    }
    
    server
    {
          ...
          listen 80;
          server_name  www.myweb.name;
          location /
          {
               proxy_pass proxy_svrs;
          }  
    }

      注意一点:在服务器组内指明了传输协议 http://,  在proxy_pass指令中就不需要指明了。反之如果服务器组内没有https://,那么 在proxy_pass指令中就需要指明,如下所示:

    upstream proxy_svrs
    {
        server 192.168.1.18001;
        server 192.168.1.28001;
        server 192.168.1.38001;
    }
    
    server
    {
          ...
          listen 80;
          server_name  www.myweb.name;
          location /
          {
               proxy_pass http://proxy_svrs;
          }  
    }

       当客户端访问http://www.myweb.name时,就会进入location中。再看一个示例:

    server
    {
          ...
          listen 80;
          server_name  www.myweb.name;
          location /server/
          {
               proxy_pass http://proxy_svrs01;
          }  
        location / 
        {
          proxy_pass http:
    //proxy_svrs; }
        }

      当客户端访问http://www.myweb.name/server时,就会匹配location /server/ 块中。

      

    参考

      Nginx高性能Web服务器详解 第7章

  • 相关阅读:
    今日头条 算法 架构
    什么才是真正的成长
    罗素 哲学 数学
    商业模式 广告 DSP
    人工智能 商业 落地 榜单
    【转】没有过时的CRM 图解大全
    20个人的初创公司,采用哪些技术栈和软件便于快速研发?
    【转】DevSecOps:打造安全合规的 DevOps 平台
    spring security HttpSessionEventPublisher & spring session HttpSessionListener
    JEECG codegenerate-3.6.3 maven
  • 原文地址:https://www.cnblogs.com/MrHSR/p/12151804.html
Copyright © 2020-2023  润新知