1. 程式人生 > >nginx高可用,構建LNAMMP架構

nginx高可用,構建LNAMMP架構

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架構