nginx前端根据$remote_addr分发怎么实现

王林
Freigeben: 2023-05-12 22:01:12
nach vorne
1357 人浏览过

需求如下:

域名下面有多台服务器,现针对某个地区做测试,让某个地区的ip用户只访问某一台服务器,单独做测试,如果没问题,全部更新;有问题则影响较小,及时发现问题解决问题;

解决方案:

使用nginx的模块,在前端负载均衡转发的机器上,配置匹配规则;

nginx配置vhost里面,域名下面location段,增加一段代码

如果$remote_addr 匹配到ip的话,转发到abc_test_server;

server {
  listen    80;
  server_name abc.com.cn;
  access_log /dev/null;
  error_log /data/logs/error.log;
  
  location / {

  proxy_set_header  host       $host;
  proxy_set_header  x-real-ip    $remote_addr;
  proxy_set_header  x-forwarded-for $proxy_add_x_forwarded_for;
      if ($remote_addr ~ "202.96.134.100") 
       {
           proxy_pass http://abc_test_server;
            break;
        }
  proxy_pass http://abc_server;
  }
}
Nach dem Login kopieren

负载均衡配置也需要增加一段

#abc_test only
upstream abc_test_server {
  server  192.168.20.10:80;
  
}

#abc.com.cn
upstream abc_server {
  server  192.168.20.11:80;
  server  192.168.20.12:80;
  server  192.168.20.13:80;
}
Nach dem Login kopieren

设定的ip会直接分发到192.168.20.10这一台后端服务器中,进行测试。

以上是nginx前端根据$remote_addr分发怎么实现的详细内容。更多信息请关注PHP中文网其他相关文章!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!