nginx 负载均衡器和高可用

Nginx

Nginx (engine x) 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx

Nginx 是一个很强大的高性能Web反向代理服务器,它具有很多非常优越的特性:

在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。无缓存的反向代理加速,简单的负载均衡和容错。

代理服务器

作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级

 一、安装部署

1)下载解压

tar zxf nginx-1.10.1.tar.gz

2)进行原码安装 

Vim /mnt/nginx-1.10.1/auto/cc/gcc #设置安装组件

./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-http_stub_status_module  #安装检查

yum install -y pcre-devel zlib-devel  #CFLAGS="$CFLAGS -g" 行注释掉

 

./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-http_stub_status_module          

 make

make install

cd /usr/local/nginx/sbin

./nginx      #执行脚本开启服务

测试


 


useradd -u 800 nginx 添加nginx账户

 

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #对目录进行软连接

nginx -s reload  #重新加载nginx

 vim /etc/security/limits.conf

 

vim /usr/local/nginx/conf/nginx.conf  #修该配置文件

server {

       listen       443 ssl;

       server_name  localhost;

      ssl_certificate      cert.pem;

       ssl_certificate_key  cert.pem;  #自己制作的证书名 

       ssl_session_cache    shared:SSL:1m;

       ssl_session_timeout  5m;

 

       ssl_ciphers  HIGH:!aNULL:!MD5;

       ssl_prefer_server_ciphers  on;

 

       location / {

           root   html;

           index  index.html index.htm;

       }

   }

制作证书

[root@server1 sbin]# cd /etc/pki/tls/certs/  

[root@server1 certs]# make cert.pem    

 

[root@server1 certs]# mv cert.pem /usr/local/nginx/conf/

[root@server1 certs]# nginx -s reload

https://172.25.50.1   #浏览器中查看证书

 

sendfile        on;   

tcp_nopush     on;  #连接超时

tcp_nodelay    on;  #降低网络延时

添加监控模块

location /status{               

                   stub_status on;    

                   access_log off;    #监控

                   allow 172.25.50.250; #访问名单,此时只有250主机可以访问

                        deny all;

        }


server {

        listen 80;

        server_name www.westos.org;

        location /{

                root /www1;        #默认发布目录

                index index.html;   #默认发布文件

                 }

        }

[root@server1 certs]# nginx -s reload

[root@server1 certs]# mkdir /www1

[root@server1 certs]# cd /www1/

[root@server1 www1]# vim index.html

[root@server1 www1]# cat index.html 

<hi> westos.server1</hi>

[root@server1 www1]# 



 

设置虚拟主机

server {

        listen 80;

        server_name bbs.westos.org;

        location /{

                root /www2;

                index index.html;

                }

        }

[root@server1 www1]# mkdir /www2

[root@server1 www1]# vim /www2/index.html

[root@server1 www1]# cat /www2/index.html 

<hi>bbs.westos.com<hi/>


 

server {

        listen 80;

        server_name www.westos.org;

        location /{

                #root /www1;       

                #index index.html;

                proxy_pass http://westos;  #调度

        }

  }

http {

        upstream westos {               #调度地址

                server 172.25.50.2:80 ;  

                server 172.25.50.3:80 ;  

        }

    include       mime.types;

    default_type  application/octet-stream;

 

http {

        upstream westos {               #调度地址

                server 172.25.50.2:80 weight=2; 加权重

                server 172.25.50.3:80 ;  

        }

 

http {

        upstream westos {               #调度地址

                server 172.25.50.2:80 ;  

                server 172.25.50.3:80 backup; 作备用

        }

     Server2 http 服务关闭时


 

nginx 可用

打开新的虚拟机server4,将server1/usr/local/nginx 远程复制给server4/usr/local/nginx 

[root@server1 nginx]# scp -r * root@172.25.50.4:/usr/local/nginx/

[root@server4 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@server4 nginx]# useradd -u 800 nginx

server1server4上同时执行下面操作

yum install -y ricci

 passwd ricci   #设置ricci 密码,两台必须密码一致

 

/etc/init.d/ricci restart

chkconfig ricci on

server1

yum install  -y luci #server1 上安装luci管理软件

 [root@server1 ~]# /etc/init.d/luci start  #启动

chkconfig luci on                          #设置开机自启动

[root@server1 ~]# /etc/init.d/luci start

Start luci...                                              [确定]

Point your web browser to https://server1:8084 (or equivalent) to access luci

[root@server1 ~]# 

在浏览器中输入生成的网址进行配置


 

添加要管理集群


 

在物理主机上安装fence 软件

yum install fence-virtd.x86_64 -y

yum install -y fence-virtd-multicast.x86_64

yum install -y fence-virtd-libvirt.x86_64

fence_virtd -c    #创建fence 

 

[root@foundation50 usr]# mkdir /etc/cluster/

[root@foundation50 usr]# cd /etc/cluster/

dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1  #制作钥匙

scp fence_xvm.key root@server4:/etc/cluster/        #将钥匙分发给server1和server4

scp fence_xvm.key root@server1:/etc/cluster/

在管理主机server1上测试fence效果

[root@server1 cluster]# fence_node server4

fence server4 success


在网页图形界面添加集群管理

添加fence

 

添加uuid


设置权重


 scp nginx server4:/etc/init.d/   #将启动脚本分发给server1server4

在图形界面添加启动脚本

 

 设置ip


测试:

此时,服务在server4上运行

 

server4上输入[root@server4 ~]# echo c > /proc/sysrq-trigger # 故意让系统崩溃

此时,服务转移到server1运行,server4重新启动,从而实现高可用


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值