Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141220
  • 博文数量: 31
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 318
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-24 22:10
个人简介

2011.4 ~ 2015.7 就职于百度运维部,负责百度推广后台系统运维; 2015.7至今,就职于北京屏芯科技(互联网+餐饮),负责稳定性、安全、敏捷、速度等工作。

文章分类

全部博文(31)

文章存档

2016年(4)

2015年(27)

我的朋友

分类: 架构设计与优化

2015-06-16 00:54:14

生产环境使用nginx集群做统一的接入层,反向代理,web proxy,以实现
  * 负载均衡
  * 
防攻击
  * 
请求转发(解耦slb和业务层)
nginx集群一一对应slb集群,由于slb集群关联了多个域名,所以nginx势必需要根据不同的域名不同的请求,转发到不同的后端集群上。
记录下nginx集群是如何根据不同域名来做请求转发的,中文的技术博客真是抄来抄去,本来挺简单的一个事情。
  * 配置在nginx.conf中
  * 
一个域名对应nginx.conf中的一段server配置
  * 
不同段的server可以监听同一端口
  * 
比对servername和Client请求中requestHeader中的Host字段,走匹配的server逻辑
比如,nginx.conf的片段如下,

点击(此处)折叠或打开

  1. server {
  2.         listen 8000;
  3.         server_name

  4.         location / {
  5.             root html;
  6.             index index_A.html;
  7.         }
  8.     }

  9.     #
  10.     # whatever...
  11.     #

  12.     server {
  13.         listen 8000;
  14.         server_name

  15.         location / {
  16.             root html;
  17.             index index_B.html;
  18.         }
  19.     }
当然,server_name, location, $request_uri都支持正则的匹配,根据这几项完全可以确定要转发的后端集群了。具体含义可以自己搜索下。
另外需要强调下,我说的不同域名,是指不同业务的不同域名。如果是同一个业务的不同域名,完全可以通过正则,或者直接罗列到server_name后面。具体问题具体分析,还是需要了解清楚上边的参数都是什么意思。
阅读(7220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~