用nginx-0.6.32作负载均衡

发布时间:2019-12-23编辑:脚本学堂
haporxy很不错,性能还是比较强的。如果不要求支持vhost,单一的负载功能可以使用haporxy。如果同时要求支持vhost,还想要一些其它功能。那就推荐用nginx(开源中,发展不错的一个产品)。

linux下的负载均衡产品有不少,LVS是一个不错的产品,但是网络拓扑结构比较复杂。
haporxy很不错,性能还是比较强的。如果不要求支持vhost,单一的负载功能可以使用haporxy。
如果同时要求支持vhost,还想要一些其它功能。那就推荐用nginx(开源中,发展不错的一个产品)。
另外,也见过有人用一台Squid在前面,后面放了N台RealServer,这种架构,如果后面的一台机器死掉,前面就影响使用了。

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

关于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
 

复制代码 代码如下:

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.jb200.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;
  }
 

参考资料:
http://wiki.codemongers.com/NginxHttpProxyModule?highlight=(proxy)