Nginx的负载均衡和高可用

一、Nginx的理解

Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。特点:占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现最好。

二、nginx的配置

    实验步骤:由于之前在源码包的编译过程使用了nginx,在此就不再叙述了,我们对nginx的配置进行如下修改。

     1) 检测是否安装成功

     ---> /usr/local/nginx/sbin/nginx         # 开启ngnix服务

     注意:当服务启动出现错误:error while loading shared  libraries:libpcre.so.1:cannot open shared object file:No such file or directory    

    解决方法: 1、使用命令where  libpcre.so.1找到它所在的位置

                         2、ln -s /usr/local/lib/libpcre.so.1 /lib64命令做个软连接

                     3、再重新启动即可(ps -aux| grep nginx来查看nginx服务进程)

     ---> ln -s /usr/local/nginx/sbin/nginx  /sbin/   # 进行nginx的链接操作

   2)去掉nginx服务的版本号

   --->  vim  /root/nginx-1.15.3/src/core/nginx.h                # 只修改一行

  

   # 此时,在真机中使用 curl -I 172.25.2.1 查看,则不会显示nginx的版本号。 

   3)注释/root/nginx-1.15.3/auto/cc/gcc中debug的下一行

  

     4)在浏览器中输入server1的ip,可以访问nginx的默认文件

  

     5)添加发布文件

     --->  vim /usr/local/nginx/html/index1.html

      <h1>server1 --- nginx</h1>

     # 在浏览器中的结果:

  

     6)nginx的基本操作

     --->  /usr/local/nginx/sbin/nginx # 启动服务

     --->  /usr/local/nginx/sbin/nginx -s stop(reload、quit)  #停停止、重启服务

     --->  /usr/local/nginx/sbin/nginx -h|-t                            # h命令帮助;t验证配置文件

三、Nginx实现负载均衡

     1)修改主配置文件

     --->  vim /usr/local/nginx/conf/nginx.conf

     worker_processes  1;

     events {

     worker_connections  65535;

     }

     http {

             upstream xniu{

             # ip_hash       # 负载均衡算法,不写默认为rr(轮询)

             server 172.25.2.2:80;   # 后端服务器

             server 172.25.2.3:80;

             server 127.0.0.1:80 backup;     # 当后端服务器均有问题时,使用本地的服务

             }

             include mime.types;

            default_type  application/octet-stream;

            server {

                     listen 80;      # nginx监听80端口

                     server_name www.xniu.com;       # 访问域名

                     location / {

                     proxy_pass http://xniu;         # 访问上边的虚拟主机

                    }

            }

     }

     2)查看系统支持的最大文件数

     --->  sysctl -a | grep file

  

     --->  vim /etc/security/limits.conf

     Nginx - nofile 65535 # 使nginx工作再nginx用户的工作空间

     3)创建nginx用户

     --->  useradd -M -d /usr/local/ngnix  ngnix  #指定用户加目录

     4)重新加载nginx:(加载之后需要打开server2和server3的httpd服务)

     --->  nginx  -s  reload

     5)在真机中测试负载均衡(当server2坏掉,则只有server3工作)

  

   注意:也可以给后端服务器设置权重;编辑nginx.conf文件;在虚拟主机172.25.2.2后添加weight=2.则在真机中会出现两次server2,一此server3。结果如下:
  

四、使用ricci和luci实现nginx的高可用

1)在server1中下载并配置管理工具ricci(集群管理)和luci(图形界面),并设置密码和服务的启动和开机自启动。由于时昨天的内容,在这就不多加阐述了。最中的结果时,可以在浏览器中打开:https://server1:8084 

 

2)配置nginx的高可用

1.首先在集群管理界面添加节点server1和server4(添加之后需几分钟,等待包的安装)

 

2.建立错误恢复域,当一个服务有问题时可以切换到另一服务上。(设置server1的优先级高)

 

 

3.添加要用到的资源nginx和vip、服务启动脚本

# 添加虚拟ip,子网掩码,切换主机的时间为5

 

# 添加脚本nginx(由于我们在/etc/init.d/下没有nginx,我们可以仿照httpd写)

 

4.在集群中添加资源组(vip nginx)

 

 

 

5.在server1和server4中配置nginx服务,测试结果如下:

可以在浏览器中输入172.25.2.100会显示如下界面:

 

在节点server1出问题之后,节点server4还可以继续工作,实现了nginx的高可用。

猜你喜欢

转载自www.cnblogs.com/uthnb/p/9694257.html