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) |