Keepaliev+Nginx+http-创新互联
Ngxin作为一个强大的开源软件是可以先做为高可用集群服务的,这篇博文就介绍一下nginx+Keepalived是如何实现高性能+高可用集群服务的
创新互联-专业网站定制、快速模板网站建设、高性价比大兴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式大兴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖大兴地区。费用合理售后完善,10多年实体公司更值得信赖。
环境介绍:
硬件: 4台虚拟服务器
系统:CentOS 7.3
软件:Keepalived、Apache、Nginx
IP及主机名
Master
主机名:shiyan1
IP地址:172.18.17.31
Backup
主机名:shiyan2
IP地址:172.18.17.32
Httpd1
主机名:shiyan3
IP地址:172.18.17.33
Httpd2
主机名:shiyan4
IP地址:172.18.17.34
四台服务器初始化配置(四台服务器相同的配置)
关闭防火墙
[root@shiyan~ ]# systemctl disable firewalld [root@shiyan~ ]# systemctl stop firewalld [root@shiyan~ ]# iptables –F关闭Selinux
[root@shiyan~ ]# vim /etc/selinux/config SELINUX=disabled #保存重启系统生效安装软件
Master/Backup
[root@shiyan~ ]# yum install keepalived httpd nginx #(Nginx需要单独配置EPEL源)Httpd1/Httpd2
[root@shiyan~ ]# yum install httpdHttpd1配置
[root@shiyan3 ~ ]# mkdir -p /app/apache/html/ [root@shiyan3 ~ ]# chown -R apache.apache /app/apache/html/ [root@shiyan3 ~ ]# echo "Apache Server 1" > /app/apache/html/index.html [root@shiyan3 ~ ]# vim /etc/httpd/conf/httpd.conf #此处是更改httpd.conf中的内容,并非添加内容 DocumentRoot "/app/apache/html" #更改为自定义的路径 # # Relax access to content within /var/www. #Httpd2配置
[root@shiyan4 ~ ]# mkdir -p /app/apache/html/ [root@shiyan4 ~ ]# chown -R apache.apache /app/apache/html/ [root@shiyan4 ~ ]# echo "Apache Server 2" > /app/apache/html/index.html [root@shiyan4 ~ ]# vim /etc/httpd/conf/httpd.conf #此处是更改httpd.conf中的内容,并非添加内容 DocumentRoot "/app/apache/html" #更改为自定义的路径 # # Relax access to content within /var/www. #Master配置
配置Sorry-Server [root@shiyan1 ~ ]# mkdir -p /app/apache/html/ [root@shiyan1 ~ ]# chown -R apache.apache /app/apache/html/ [root@shiyan1 ~ ]# echo "Sorry Server 1
" > /app/apache/html/index.html [root@shiyan1 ~ ]# vim /etc/httpd/conf/httpd.conf #此处是更改httpd.conf中的内容,并非添加内容 Listen 8080 DocumentRoot "/app/apache/html" #更改为自定义的路径 # # Relax access to content within /var/www. #Sorry Server 1
#测试成功 配置Keepalived [root@shiyan1 ~ ]# cp /etc/keepalived/keepalived.conf{,.bak} #备份文件 [root@shiyan1 ~ ]# vim /etc/keepalived/keepalived.conf global_defs { notification_email { root #定义收邮件的用户 } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 172.18.17.31 #定义邮件地址 smtp_connect_timeout 30 router_id node1 #定义节点名称 } vrrp_instance VI_1 { state MASTER #定义节点为主节点模式 interface ens33 #定义使用ens33为VIP网卡 virtual_router_id 51 #定义节点编号 priority 150 #定义优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.18.17.30 #定义VIP } } ~ 配置Nginx服务 [root@shiyan1 ~ ]# vim /etc/nginx/nginx.conf #添加nginx集群 upstream websrvs { server 172.18.17.33:80; server 172.18.17.34:80; server 127.0.0.1:8080 backup; } #server 部分的内容需要全部注释掉 [root@shiyan1 ~ ]# vim /etc/nginx/conf.d/default.conf server { listen 80; location / { root html; proxy_pass http://websrvs; index index.html index.htm; } } [root@shiyan1 ~ ]# systemctl restart nginx [root@shiyan1 ~ ]# systemctl restart keepalived [root@shiyan1 ~ ]# systemctl restart httpdBackup配置
配置Sorry-Server [root@shiyan2 ~ ]# mkdir -p /app/apache/html/ [root@shiyan2 ~ ]# chown -R apache.apache /app/apache/html/ [root@shiyan2 ~ ]# echo "Sorry Server 2
" > /app/apache/html/index.html [root@shiyan2 ~ ]# vim /etc/httpd/conf/httpd.conf #此处是更改httpd.conf中的内容,并非添加内容 Listen 8080 DocumentRoot "/app/apache/html" #更改为自定义的路径 # # Relax access to content within /var/www. #Sorry Server 2
#测试成功 配置Keepalived [root@shiyan2 ~ ]# cp /etc/keepalived/keepalived.conf{,.bak} #备份文件 [root@shiyan2 ~ ]# vim /etc/keepalived/keepalived.conf global_defs { notification_email { root #定义收邮件的用户 } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 172.18.17.31 #定义邮件地址 smtp_connect_timeout 30 router_id node1 #定义节点名称 } vrrp_instance VI_1 { state MASTER #定义节点为主节点模式 interface ens33 #定义使用ens33为VIP网卡 virtual_router_id 51 #定义节点编号 priority 150 #定义优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.18.17.30 #定义VIP } } ~ 配置Nginx服务 [root@shiyan2 ~ ]# vim /etc/nginx/nginx.conf #添加nginx集群 upstream websrvs { server 172.18.17.33:80; server 172.18.17.34:80; server 127.0.0.1:8080 backup; } #server 部分的内容需要全部注释掉 [root@shiyan2 ~ ]# vim /etc/nginx/conf.d/default.conf server { listen 80; location / { root html; proxy_pass http://websrvs; index index.html index.htm; } } [root@shiyan2 ~ ]# systemctl restart keepalived [root@shiyan2 ~ ]# systemctl restart nginx [root@shiyan2 ~ ]# systemctl restart httpd测试环境
#默认使用rr算法依次轮询访问后端httpd服务器 [root@yum ~ ]# curl http://172.18.17.30 Apache Server 1 [root@yum ~ ]# curl http://172.18.17.30 Apache Server 2 #关闭后端http1服务,这样只能访问httpd2的服务 [root@yum ~ ]# curl http://172.18.17.30 Apache Server 2 [root@yum ~ ]# curl http://172.18.17.30 Apache Server 2 #关闭两台后端主机的httpd服务,这样因为没有后端服务器所以Master的sorry-server提供服务 [root@yum ~ ]# curl http://172.18.17.30Sorry Server 1
#关闭Master测试 [root@yum ~ ]# curl http://172.18.17.30Sorry Server 2
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站名称:Keepaliev+Nginx+http-创新互联
URL分享:http://hbruida.cn/article/pishp.html