当前位置: > Linux服务器 > nginx >

Nginx反向代理负载均衡的实现及开放的反向代理软件的使用方法

时间:2016-02-25 21:42来源:linux.it.net.cn 作者:IT

nginx和nat123都是开放的反向代理软件应用。nginx是单纯的反向代理软件,可通过自行配置文件实现搭建代理服务。nat123是综合NAT和反向代理的应用软件,直接使用添加80映射或动态解析(故障转称和负载均衡),不需要自己搭建服务。

Nginx反向代理负载均衡 


Nginx反向代理负载均衡可以算是一起实现的两个功能,也可以说为了完成负载均衡功能而产生的反向代理。除了以上这一点,反向代理也对内网web服务器进行了保护。

*负载均衡实现方式

1:公司的一个域名可以绑定多个外网的IP地址,直接由DNS解析系统进行随机分配。除了性能分配不均的情况,还有更可怕的就是如果一台服务器down了,DNS主机还会随机的向这台服务器分配流量,导致访问超时,给用户带来不便。

2:使用nginx进行负载均衡

如图所示:内网有三台web server ,正常情况下,管理员根据服务器的性能,设置weight,分配使用这台服务几率(server 66.249.89.104 weight=3 max_fails=2 fail_timeout=30s;)。如果某台服务器反回超时,这台服务起就不再被分配用户。

这样比DNS服务器直接进行随机分配好的多。可靠性和利用率大大提高。

*反向代理:公司的域名只要和一个IP地址绑定就可以实现nginx负载均衡,大大节省购买IP地址时的代价。当用户访问公司域名时,请求直接被发送到nginx server上,nginx server根据weight值和fail_timeout来进行合理分配服务器资源。

更加人性化。

*Nginx 反向代理还防止了web server直接暴露在外网的环境下,一定程度上保证了web server的安全。

*用nginx实现反向代理和负载均衡:

安装:

#tar zxvf pcre-8.00.tar.gz

#./configure

#make && make install

#mkdir /usr/local/nginx/

#tar zxvf nginx- 0.8.24.tar.gz

#cd nginx-0.8.24

#./configure --prefix=/usr/local/nginx      

//此处在本环节只需指定一个路径

#make && make install

#/usr/local/nginx/sbin/nginx      

//启动Nginx

#echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local

//设置开机启动

对nginx配置文件进行修改:vim /usr/local/nginx/conf/nginx.conf

#user  nobody;

worker_processes  1;                  

//此和CPU的核数相同

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

use epoll;                         

//epoll是Linux下多路复用IO接口select/poll的增强版本,

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

limit_zone one $binary_remote_addr 5m;

limit_req_zone $binary_remote_addr zone=two:5m rate=10r/s;

keepalive_timeout 65;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

  #  keepalive_timeout  65;

    gzip  on;

gzip_min_length 1k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

proxy_buffers 8 10240k;

proxy_busy_buffers_size 20480k;

proxy_temp_file_write_size 20480k;

include vhost/*.conf;                      

//加载虚拟服务器配置文件

}
建立目录:mkdir /usr/local/nginx/conf/vhost/

建立文件:vim /usr/local/nginx/conf/vhost/www.test.com.conf

www.test.com.conf配置文件: 

upstream test.com_server_pool    

//设置内网服务器池

{

server 192.168.202.101 weight=2 max_fails=2 fail_timeout=30s;

server 192.168.202.102 weight=3 max_fails=2 fail_timeout=30s;

server 192.168.202.103 weight=3 max_fails=2 fail_timeout=30s;

}

server

{

listen 80;

server_name www.test.com test.com 129.1.1.100;

//设置域名和IP地址的绑定


location /


{


proxy_next_upstream http_502 http_504 error timeout invalid_header;

//遇到这些错误搜索pool

proxy_pass http://test.com_server_pool;

//设置使用test.com_server_pool

proxy_set_header Host www.test.com;

proxy_set_header X-Forwarded-For $remote_addr;

//如果使用内网使用虚拟主机,就要此配置

}

access_log /root/Desktop/www.test.com_access.log; 

//设置日志文件(确保此文件存在)

}

重启nginx方法:

先杀进程:killall -9 nginx


启动nginx进程:/usr/local/nginx/sbin/nginx

 

nat123实现动态域名解析负载均衡和故障转移

在内网安装并启用,添加域名解析,选择动态域名解析,可以使用自己的顶级域名,选择负载均衡和故障转移。然后同一帐号在多处登录即可。

 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容