/ 中存储网

Nginx服务器的负载均衡配置

2013-09-22 15:32:01 来源:ITJS.CN
现在负载均衡有很多产品.

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;

}