nginx 的负载均衡
nginx是什么?
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
首先是配置十分的简单,而且功能非常强大。真是相见恨晚。
先来看看配置文件怎么写吧
worker_processes 1;
events {
worker_connections 1024;
}
http{
upstream myproject {
#这里指定多个源服务器,ip:端口,80端口的话可写可不写
server 192.168.43.158:80;
server 192.168.41.167;
}
server {
listen 8080;
location / {
proxy_pass http://myproject;
}
}
}
nginx的负载均衡有哪些功能呢?
- 如果后面的服务器其中一台坏了,它能自动识别,更牛的是它好了之后nginx可以马上识别
- 服务器A和B,如果A的响应时间为3,B的响应时间为1,那么nginx会自动调整访问B的概率是A的3倍,真正做到负载均衡
在这里还是想说说nginx的安装及运行
先到http://www.nginx.net/下载最新的源码包。
我下载到的是nginx-0.5.33.tar.gz
解压:tar zxvf nginx-0.5.33.tar.gz
接着:./configure
再接着:make
最后:make install
好的,安装完成了。我在make的时候报了个错,说HTTP Rewrite 模块 有问题,我就./configure –without-http_rewrite_module
然后再make,make install就可以了。
安装好了之后新建一个配置文件,把上面的配置文件内容拷进去,当然要修改你的IP,保存为比如 load_balance.conf
然后启动:
/usr/local/nginx/sbin/nginx -c load_balence.conf
如果上面的步骤走下来有问题的话,可以参考:
nginx的中文维基
http://wiki.codemongers.com/NginxChs
当然也可以到官方网站
www.nginx.net
www.nginx.com
由于nginx的作者是俄国人,所以英文的文档也不是那么完善,对于我来说nginx的最大优点还是配置简单,功能强大
我曾经配过 apache-jk,那真的不是一般人能配的。太复杂了,而且只能用来做tomcat的负载均衡。
nginx就没有这个限制,对它来说后面是什么服务器是完全透名的。