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

 更新时间:2018年04月10日 09:57:09   作者:爱代码也爱生活  
这篇文章主要介绍了CentOS基于nginx反向代理实现负载均衡的方法,简单分析了CentOS环境下nginx负载均衡的原理及nginx安装与相关设置操作技巧,需要的朋友可以参考下

本文实例讲述了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://www.atomicorp.com/installers/atomic #下载
sh ./atomic #安装
yum check-update #更新yum源 有的需要更新几次 才有nginx最新版本 否则是老版本nginx
yum 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.gz
tar -zxvf nginx-1.7.8.tar.gz
cd nginx-1.7.8
./configure
make && 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服务器维护有所帮助。

相关文章

  • Linux知识点小结

    Linux知识点小结

    这篇文章主要为大家分享了Linux知识点,帮助大家更加详细的学习Linux
    2016-01-01
  • Apache中解决动态地址跳转死循环的方法

    Apache中解决动态地址跳转死循环的方法

    这篇文章主要介绍了Apache中解决动态地址跳转死循环的方法,另外作者还提出了尽量使用伪静态的建议,需要的朋友可以参考下
    2015-07-07
  • htaccess Rewrite中文编码问题解决方法

    htaccess Rewrite中文编码问题解决方法

    Seo方面对于中文地址或则文件名,在Google好像比重要大一些,今天正好看到andy的文章.转下,以后也许会用.
    2008-10-10
  • 在Windows的Apache服务器上配置对PHP和CGI的支持

    在Windows的Apache服务器上配置对PHP和CGI的支持

    这篇文章主要介绍了在Windows的Apache服务器上配置对PHP和CGI的支持,其中CGI脚本文中演示的为Perl示例,需要的朋友可以参考下
    2015-07-07
  • 虚拟机安装Linux rhel7.3操作系统(具体步骤)

    虚拟机安装Linux rhel7.3操作系统(具体步骤)

    这篇文章主要介绍了虚拟机安装Linux rhel7.3操作系统(具体步骤),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • iptables做策略屏蔽QQ与MSN

    iptables做策略屏蔽QQ与MSN

    QQ服务器端口为:8000;客户端端口为:4000(开启第二个QQ时为4001,依次类推);均为UDP.MSN端口数较多:1863为登陆所需要的端口以及3000-4000等等
    2013-04-04
  • 树莓派搭建nas服务器的详细过程

    树莓派搭建nas服务器的详细过程

    这篇文章主要介绍了树莓派搭建nas服务器的教程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Linux下部署springboot项目的方法步骤

    Linux下部署springboot项目的方法步骤

    这篇文章主要介绍了Linux下部署springboot项目的方法步骤,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上,具体实例方法大家参考下本文
    2018-06-06
  • CentOS7下Docker的安装教程

    CentOS7下Docker的安装教程

    本篇文章主要介绍了CentOS7下Docker的安装教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • crontab执行结果未通过发送mail通知用户的方法

    crontab执行结果未通过发送mail通知用户的方法

    这篇文章主要给大家介绍了关于crontab执行结果未通过发送mail通知用户的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06

最新评论