通过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来执行,否则转发至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来执行,否则转发至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来执行,否则转发至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来执行,否则转发至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]