CentOS基于nginx反向代理实现负载均衡的方法

时间:2021-05-19

本文实例讲述了CentOS基于nginx反向代理实现负载均衡的方法。分享给大家供大家参考,具体如下:

nginx做负载均衡的优点:

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,nginx单凭这点可利用的场合就远多于LVS了

2、nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一;相反LVS对网络稳定性依赖比较大,这点本人深有体会

3、nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大

4、可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些

注意事项:

1、不同安装方法nginx的配置文件位置不一样

2、upstream如果使用ip_hash方式,则每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

环境:

系统:centos6.6
nginx ip:192.168.20.103
web1 ip:192.168.20.193
web2 ip:192.168.20.194

一、安装nginx

两种方法,我用的是第1种

第1种 yum安装,需安装第三方yum源,因为nginx默认不在centos的yum源中 所以需更新

yum install wget #安装下载工具wget http:///installers/atomic #下载sh ./atomic #安装yum check-update #更新yum源 有的需要更新几次 才有nginx最新版本 否则是老版本nginxyum remove httpd* php* #删除系统自带的软件包 也可加mysql*前提备份数据库yum install nginx #安装nginx根据提示输入y进行安装chkconfig nginx on #设置nginx开机启动service nginx start #启动nginx 重启 restart

第2种 编译安装

wget http://nginx.org/download/nginx-1.7.8.tar.gztar -zxvf nginx-1.7.8.tar.gzcd nginx-1.7.8./configuremake && make install

二、修改配置文件

nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

修改 /etc/nginx/nginx.conf 增加

#负载均衡配置upstream backend {#ip_hash;server 192.168.20.193;server 192.168.20.194;}

修改 /etc/nginx/conf.d/default.conf

location / {#设置主机头和客户端真实地址,以便服务器获取客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #禁用缓存 proxy_buffering off; #反向代理的地址 proxy_pass http://backend; root /usr/share/nginx/html; index index.html index.htm; # example #ModSecurityEnabled on; #ModSecurityConfig /etc/nginx/modsecurity.conf;}

三、测试

第一次访问转发到193,因为 upstream默认是轮询,第二次则转发到了194

希望本文所述对大家CentOS服务器维护有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章