admin 发表于 2023-2-16 18:55:05

通过Nginx反向代理实现IP访问分流

<div id="article_content" class="article_content clearfix">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
                <div id="content_views" class="htmledit_views">
                  <h3>根据特定IP来实现分流</h3>
<ul><li>将IP地址的最后一段最后一位为0或2或6的转发至test-01.com来执行&#xff0c;否则转发至test-02.com来执行。</li></ul>
<blockquote>
<ol><li><code>upstream test-01.com {</code></li><li><code>server 192.168.1.100:8080;</code></li><li><code>}</code></li><li></li><li><code>upstream test-02.com {</code></li><li><code>server 192.168.1.200:8080;</code></li><li><code>}</code></li><li></li><li><code>server {</code></li><li></li><li><code>listen 80;</code></li><li><code>server_name www.test.com;</code></li><li></li><li><code>location / {</code></li><li><code>if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*$){</code></li><li><code>proxy_pass http://test-01.com;</code></li><li><code>break;</code></li><li><code>}</code></li><li><code>proxy_pass http://test-02.com;</code></li><li><code>}</code></li><li><code>}</code></li></ol>
</blockquote>
<ul><li>将IP地址前3段为192.168.202.*转发至test-01.com来执行&#xff0c;否则转发至test-02.com来执行。</li></ul>
<blockquote>
<ol><li><code>upstream test-01.com {</code></li><li><code>server 192.168.1.100:8080;</code></li><li><code>}</code></li><li></li><li><code>upstream test-02.com {</code></li><li><code>server 192.168.1.200:8080;</code></li><li><code>}</code></li><li></li><li><code>server {</code></li><li></li><li><code>listen 80;</code></li><li><code>server_name www.test.com;</code></li><li></li><li><code>location / {</code></li><li><code>if ( $remote_addr ~* ^(192)\.(168)\.(202)\.(.*)$) {</code></li><li><code>proxy_pass http://test-01.com;</code></li><li><code>break;</code></li><li><code>}</code></li><li><code>proxy_pass http://test-02.com;</code></li><li><code>}</code></li><li></li><li><code>}</code></li></ol>
</blockquote>
<h3>根据指定范围IP来实现分流</h3>
<p>将IP地址的最后一段为1-100的转发至test-01.com来执行&#xff0c;否则转发至test-02.com执行。</p>
<blockquote>
<ol><li><code>upstream test-01.com {</code></li><li><code>server 192.168.1.100:8080;</code></li><li><code>}</code></li><li></li><li><code>upstream test-02.com {</code></li><li><code>server 192.168.1.200:8080;</code></li><li><code>}</code></li><li></li><li><code>server {</code></li><li></li><li><code>listen 80;</code></li><li><code>server_name www.test.com;</code></li><li></li><li><code>location / {</code></li><li><code>if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.$){</code></li><li><code>proxy_pass http://test-01.com;</code></li><li><code>break;</code></li><li><code>}</code></li><li><code>proxy_pass http://test-02.com;</code></li><li><code>}</code></li><li></li><li><code>}</code></li></ol>
</blockquote>
<h3>根据forwarded地址分流</h3>
<p>将IP地址的第1段为212开头的访问转发至test-01.com来执行&#xff0c;否则转发至test-02.com执行。</p>
<blockquote>
<ol><li><code>upstream test-01.com {</code></li><li><code>server 192.168.1.100:8080;</code></li><li><code>}</code></li><li></li><li><code>upstream test-02.com {</code></li><li><code>server 192.168.1.200:8080;</code></li><li><code>}</code></li><li></li><li><code>server {</code></li><li></li><li><code>listen 80;</code></li><li><code>server_name www.test.com;</code></li><li></li><li><code>location / {</code></li><li><code>if ( $http_x_forwarded_for ~* ^(212)\.(.*)\.(.*)\.(.*)$){</code></li><li><code>proxy_pass http://test-01.com;</code></li><li><code>break;</code></li><li><code>}</code></li><li><code>proxy_pass http://test-02.com;</code></li><li><code>}</code></li><li></li><li><code>}</code></li></ol>
</blockquote>
<p></p>
<p></p>
                </div>
      </div>
      <div id="treeSkill"></div>
页: [1]
查看完整版本: 通过Nginx反向代理实现IP访问分流