keepalived实现nginx高可用:
Directory1:
IP:172.16.72.5
Directory2:
IP:172.16.72.4
RS1:
IP:172.16.72.6
RS2:
IP:172.16.72.7
Virtual IP:172.16.72.1
①安装nginx,keepalived
yum -y install nginx keepalived
②校准时间,设置ntpd服务,时间服务器
③配置Directory1的nginx
配置文件/etc/nginx/nginx.conf
![QQ截图20171030213533.jpg c04062c735ddd351f18f7f77eef6c5ab.jpg-wh_]()
upstream设置后端服务器的相关信息
在servver中设置Directory反代
proxy_pass
Directory2的nginx配置相同;
配置keepalived:
![QQ截图20171030213833.jpg 1176656302d18da35df8518949267991.jpg-wh_]()
keepalived脚本接口,用于判断nginx服务是否开启
若nginx服务已关闭,则返回exit 1,权重-10,这样在抢占模式下BACKUP就会转为MASTER;
![QQ截图20171030214420.jpg f5a2f9fc998b740d325b0ba894d43295.jpg-wh_]()
Directory2的配置:
nginx配置
![QQ截图20171030214527.jpg d00c3d947e5e2cce7a8264ca97865271.jpg-wh_]()
keepalived配置:
![QQ截图20171030214618.jpg 6c1d98a270b86ccb3c93264b8add088c.jpg-wh_]()
![QQ截图20171030214649.jpg 3e568cbc197f4c75e3ca5fef1a8b43ee.jpg-wh_]()
nginx高可用验证:
MASTER为Directory1:
![QQ截图20171030214747.jpg 7b6bae986998a1a024bee7e388c1fb08.jpg-wh_]()
浏览器访问:
![QQ截图20171030214830.jpg d22c3e771228ac6f95cc3579852c29e6.jpg-wh_]()
![QQ截图20171030214927.jpg 12e6f3b020368c2bb28c34f55b1f707f.jpg-wh_]()
关闭Directory1的nginx服务
[root@localhost 桌面]# nginx -s stop
MASTER转到Directory2上:
![QQ截图20171030215051.jpg d958781a7c36a5821f17e7416682c962.jpg-wh_]()
访问浏览器:
![QQ截图20171030215147.jpg 13c0fc03421055479692ebd3222d347e.jpg-wh_]()
![QQ截图20171030215253.jpg 3c1b39e65e4fb0a55e69ebae4d31287e.jpg-wh_]()
构建LNAMMP架构:
1) Nginx既是前端调度器,又是缓存服务器;
2) 将php的session缓存于memcached中;
3) 在Apache和php上部署Discuz论坛程序;
4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问;
①配置Nginx前端调度器,缓存服务器:
如上所述;
②后端真实服务器上配置Discuz程序
将Discuz程序导入,使用unzip解压缩;
配置Mariadb
如:
![QQ截图20171101161457.jpg 514be989a91df7fea79a9dd094f6504b.jpg-wh_]()
解压后产生文件有upload,readme,utility;
安装php-fpm;
③配置后端服务器的httpd
两个Real Server的配置均相同,配置密钥的方式在这里不说了
![QQ截图20171101161857.jpg e9ac973f6e3b2f46343022b29a4ebb4e.jpg-wh_]()
#yum install -y mod_ssl
安装httpd下的https插件
④前端nginx的rewrite与反代
在nginx高可用的基础上进行的修改
![QQ截图20171101162158.jpg c2cd1ba22ea0a1bcf184bb4dc7a8b3bd.jpg-wh_]()
rewrite重写为https模式;
![QQ截图20171101162308.jpg 08b742ff0e02522133d683970fe4df2a.jpg-wh_]()
当访问80端口后,重写为https的域名,由443端口获取,再将其反代到wjq这个服务器组中;
访问结果:
直接访问https://www.wujunqi1.com/upload/install/index.php
![QQ截图20171101162851.jpg 11e5a0048ccb72781885ebf7196da0da.jpg-wh_]()
访问:http://www.wujunqi1.com/upload/install/index.php便会转到https服务
断掉Directory1的nginx服务:
#nginx -s stop
访问第二台Directory2,结果相同
![QQ截图20171101163330.jpg 0509df9f60bd84717cc20ece6e051655.jpg-wh_]()
设置memcached缓存服务器:
缓存服务器IP为172.16.72.5即第一台MASTER主机
安装memcached
#yum install -y memcached
启动memcached
#systemctl start memcached.service
并在后端RS的php上设置会话缓存,主要配置/etc/php-fpm.d/www.conf(安装的是php-fpm)
若安装的是php,则修改/etc/php.ini配置文件;
![QQ截图20171105160740.jpg d3794c9835c56861c11260e996c6280c.jpg-wh_]()
需要注意的是,在配置php会话缓存时,需要与memcached相对应的配置项,如php-pecl-memcache 或者php-pecl-memcached;
使用如下代码,去验证php缓存是否成功:
![QQ截图20171105155443.jpg 923c22b1bb2f831a9462e477d178a2d3.jpg-wh_]()
修改缓存服务器IP地址即可;
该代码的主要意义在于,连接远程缓存服务器,并将hellokey作为键值,Hello World作为缓存数 据保存在缓存服务器中,保存时间600秒;
访问nginx的虚拟IP,172.16.72.1,反代至后端的172.16.72.6主机得出缓存成功的结果;
![QQ截图20171105155836.jpg e364ee23b36648a2df57c41f88911f0d.jpg-wh_]()
本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1979122