生产环境使用nginx集群做统一的接入层,反向代理,web proxy,以实现
*
负载均衡
* 防攻击
* 请求转发(解耦slb和业务层)
nginx集群一一对应slb集群,由于slb集群关联了多个域名,所以nginx势必需要根据不同的域名不同的请求,转发到不同的后端集群上。
记录下nginx集群是如何根据不同域名来做请求转发的,中文的技术博客真是抄来抄去,本来挺简单的一个事情。
*
配置在nginx.conf中
* 一个域名对应nginx.conf中的一段server配置
* 不同段的server可以监听同一端口
* 比对servername和Client请求中requestHeader中的Host字段,走匹配的server逻辑
比如,nginx.conf的片段如下,
-
server {
-
listen 8000;
-
server_name
-
-
location / {
-
root html;
-
index index_A.html;
-
}
-
}
-
-
#
-
# whatever...
-
#
-
-
server {
-
listen 8000;
-
server_name
-
-
location / {
-
root html;
-
index index_B.html;
-
}
-
}
当然,server_name, location, $request_uri都支持正则的匹配,根据这几项完全可以确定要转发的后端集群了。具体含义可以自己搜索下。
另外需要强调下,我说的不同域名,是指不同业务的不同域名。如果是同一个业务的不同域名,完全可以通过正则,或者直接罗列到server_name后面。具体问题具体分析,还是需要了解清楚上边的参数都是什么意思。
阅读(7220) | 评论(0) | 转发(0) |