低成本选择:用nginx做开源负载均衡

技术分享 Story 79浏览 0评论
摘要

低成本选择:用nginx做开源负载均衡

低成本选择:用nginx做开源负载均衡
作者:吴炳锡 2008-07-21 

 低成本选择:用nginx做开源负载均衡现在负载均衡有很多产品。LVS也是一个不错的产品,但是它的网络拓扑结构比较复杂.我觉的不是一个完美的东西.haporxy真的很不错,性能还是比较强的.如果不要求支持vhost,单一的负载功能可以使用haporxy。

如果同时要求支持vhost,还想要一些其它功能.那就推荐用nginx(开源中,发展不错的一个产品).另外,我也见过有人用一台Squid在前面,后面放了N台RealServer,这种架构,实在有点晕.如果后面的一台机器死掉,前面就影响使用了.

先来看一下Nginx负载均衡的功能:
1 能把负载传递给后端的机器.
2 后面的机器任何一个死掉不影响前面正常服务.
上面是最基本的.
3 实现内容缓存,加速的功能(F5)的作用.
4 实现动静内空分离

看看上面的功能,简直太牛X了.而且拓扑结构简单.

关于niginx
http://nginx.net/
nginx [engine x] is a HTTP server and mail proxy server
而且是基于BSD许可协义的.
现在稳定版是:
nginx-0.6.32 http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
如果需要正则支持请安装pecl库.这里只做Proxy,所以不安装了.

#tar zxvf nginx-0.6.32.tar.gz
#cd nginx-0.6.32
#./configure --prefix=/usr/local/nginx \
--user=nobody \
--group=nobody \
--without-poll_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module

#为了高效的性能一般使用epoll.
#make && make install
#make clean
#cd /usr/local/nginx/conf
#vim nginx.conf
like
=======================================================

user nobody;
worker_processes 10;

error_log /logs/error.log;
#定义出错的log

#pid logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;

access_log off;
#关闭了access log.也可以去打开.
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#压缩传输,减少带宽.
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/html application/xml image/jpeg image/png image/gif;

upstream backend{
server 192.168.1.100:80 weight=1;
server 192.168.1.1001:80 weight=1;
#weight是权重,如果想往那台机器多分点流量,就加大那个数字吧.
}
server {
listen 80;
server_name www.wubx.com;

location / {
#internal;
proxy_pass http://backend/;
#proxy_store on;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
index index.html index.php index.htm;
}
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
}

}
}
=====================================================================
保存.
/usr/local/nginx/sbin/nginx -t
去测试配置文件是不是正确.
如果确就可以启动了.
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf&

重启:
killall -HUP nginx
这样就可以实现简单的负载均衡功能.

增加文件的Header头,让缓存到客户端,添加到server段中
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
root /data3/i.okooo.com;
index index.php;
access_log off;
expires 14d;
}

转载请注明:成长的对话 » 低成本选择:用nginx做开源负载均衡