nginx前端根据$remote_addr分发方法
需求如下:
域名下面有多台服务器,现针对某个地区做测试,让某个地区的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; } }
负载均衡配置也需要增加一段
#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; }
设定的ip会直接分发到192.168.20.10这一台后端服务器中,进行测试;

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
SQL调优如何生成海量测试数据
场景,如果出现慢SQL,需要DBA加索引优化,怎么知道加的索引是有效的呢?这需要一遍遍的试验和调整,总不能直接拿线上的数据库测试吧,一般方法是在测试环境建立测试表,然后从线上的从库拷贝一些数据进测试环境,接着再进行加索引和explain 但有时候,导出的数据量少,执行计划看不出效果,导出数据量多,又会冲刷线上机器的buffer pool和影响IO,如果有个工具能够直接生成数据就好了,生成跟线上一样的100万,或者1000万就好了 以前sysbench压力测试,有一个生成数据的功能,生成100万数据是这样的 sysbench--test=oltp--mysql-table-engine=myisam--oltp-table-size=1000000\ --mysql-socket=/tmp/mysql.sock--mysql-user=test--mysql-host=localhost\ --mysql-password=testprepare 但它生成表结构是固定的,进行压力测试的SQL语句也是固定的,无法调试线上的SQL语句 CREATETABLE`sbtest`( `id`int...
-
下一篇
七、Web服务器Apache的配置和管理
万维网Web,是在Internet上以超文本为基础形成的信息网。用户通过浏览器可以访问Web服务器上的信息资源,目前在Linux操作系统上最常用的Web服务器软件是Apache。Apache是一种开源的HTTP服务器软件,可以在包括UNIX、Linux以及Windows在内的大多数主流计算机操作系统中运行。 7.1、Apache简介 Apache是一款开源软件,所以得到了开源社区支持,不断开发出新的功能特性,并修补了原来的缺陷 。经过多年来不断的完善,如今的Apache已经是最流行的Web服务器端软件之一。Apache拥有以下众多的 特性,保证它可以高效稳定地运行。 1.支持最新的HTTP/1.1通信协议2.拥有简单而强有力的基于文件的配置过程3.支持通用网关接口CGI4.支持基于IP和基于域名的虚拟主机5.支持多种方式的HTTP认证6.集成Perl处理模块7.集成代理服务器模块8.支持实时监视服务器状态和定制服务器日志9.支持服务器端包含指令(SSI)10.支持安全Socket层(SSL)11.提供用户会话过程的跟踪12.支持FastCGI13.通过第三方模块可以支持JavaSer...
相关文章
文章评论
共有0条评论来说两句吧...