Nginx作为轻量级HTTP服务器,性能上占用资源少,支持多并发,功能上可以实现代理服务器可用于负载均衡,配置上简单灵活!将自己最近的文档整理一下,备以后使用,这里单从功能实现的基础配置上进行说明
负载均衡(做分发服器)
1、基于浏览器的分发
基于浏览器的分发,按照在不同平台的浏览器请求进行分发,比如手机浏览器讲究资源小速度快节省流量,所以将自手机浏览器的请求分发到专供处理移动平台的web服务器上,而在PC上浏览网页注重体验,所以将来自IE浏览器的请求分发到专供处理PC平台的服务器上,这样可以使在不同平台的用户都能得到适合自己的体验!
添加多个upstream
vim /usr/local/nginx/conf/nginx.con
12345678 upstream web {
ip_hash;
server 192.168.1.10
}
upstream apache {
ip_hash;
server 192.168.1.11
}
在定义server的时进行location规则判断
12345678910111213 server{
listen 80;
server_name 192.168.1.100; (分发主机)
location/ {
if( $http_user_agent ~* Elinks ) {
proxy_pass http://web; #来自Elinks浏览器的请求,交给web来处理
}
if( $http_user_agent ~* Mozilla ) {
proxy_pass http://apache;
#来自Mozilla类型的浏览器的请求,交给apache处理,IE和火狐都属于Mozilla
}
}
}
2、基于开发语言的分发
这里开发语言环境的部署,祥看我这篇文章“http://cuimk.blog.51cto.com/6649029/1335770”
常见开发语言的后缀aspaspx php jsp html,为了将不同语言开发的程序交给特定的语言环境来执行,同样可以实现Nginx的location规则来实现
同样定义server时进行location规则判断
12345678910 location~* \.php$ {
proxy_pass http://192.168.1.250; #访问php结尾的,分发到250
}
location ~* \.jsp$ {
proxy_pass http://192.168.1.251; #访问jsp结尾的,分发到251
}
location / {
root html
index index.html; #访问其他的,请求本机
}