nginx高可用,構建LNAMMP架構
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
upstream設置後端服務器的相關信息
在servver中設置Directory反代
proxy_pass
Directory2的nginx配置相同;
配置keepalived:
keepalived腳本接口,用於判斷nginx服務是否開啟
若nginx服務已關閉,則返回exit 1,權重-10,這樣在搶占模式下BACKUP就會轉為MASTER;
Directory2的配置:
nginx配置
keepalived配置:
nginx高可用驗證:
MASTER為Directory1:
瀏覽器訪問:
關閉Directory1的nginx服務
[root@localhost 桌面]# nginx -s stop
MASTER轉到Directory2上:
訪問瀏覽器:
構建LNAMMP架構:
1) Nginx既是前端調度器,又是緩存服務器;
2) 將php的session緩存於memcached中;
3) 在Apache和php上部署Discuz論壇程序;
4) 使用https連接,即使用戶使用的是http協議也可以以https協議進行訪問;
①配置Nginx前端調度器,緩存服務器:
如上所述;
②後端真實服務器上配置Discuz程序
將Discuz程序導入,使用unzip解壓縮;
配置Mariadb
如:
解壓後產生文件有upload,readme,utility;
安裝php-fpm;
③配置後端服務器的httpd
兩個Real Server的配置均相同,配置密鑰的方式在這裏不說了
#yum install -y mod_ssl
安裝httpd下的https插件
④前端nginx的rewrite與反代
在nginx高可用的基礎上進行的修改
rewrite重寫為https模式;
當訪問80端口後,重寫為https的域名,由443端口獲取,再將其反代到wjq這個服務器組中;
訪問結果:
直接訪問https://www.wujunqi1.com/upload/install/index.php
訪問:http://www.wujunqi1.com/upload/install/index.php便會轉到https服務
斷掉Directory1的nginx服務:
#nginx -s stop
訪問第二臺Directory2,結果相同
設置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配置文件;
需要註意的是,在配置php會話緩存時,需要與memcached相對應的配置項,如php-pecl-memcache 或者php-pecl-memcached;
使用如下代碼,去驗證php緩存是否成功:
修改緩存服務器IP地址即可;
該代碼的主要意義在於,連接遠程緩存服務器,並將hellokey作為鍵值,Hello World作為緩存數 據保存在緩存服務器中,保存時間600秒;
訪問nginx的虛擬IP,172.16.72.1,反代至後端的172.16.72.6主機得出緩存成功的結果;
nginx高可用,構建LNAMMP架構