項目之五臺服務器實戰linux+Nginx+php+MySQL主主+NFS文共享集群架構;
1)部署1臺Nginx WEB前端服務器(不能跟PHP-CGI公用); 2)部署2臺PHP-CGI網站代碼; 3)部署2臺MYSQL主主同步架構(可以加入MHA或者DRBD); 4)部署Discuz和wordPress/ target=_blank class=infotextkey>WordPress多域名網站,通過兩個域名dz.jf.com|wp.jf.com訪問; 5)部署1臺NFS文件共享服務器,網站代碼統一存放在NFS服務器; 6)通過億圖或者visor將架構圖畫出來。 7)以上服務器再不影響使用的情況下,可以共用。
實驗拓撲圖
一.部署兩臺mariadb主主數據庫
1.安裝mariadbDB數據庫
Mysql服務器節點1:10.10.10.10
Mysql服務器節點2:10.10.10.12
服務器節點1和服務器節點2安裝mysql
安裝yum install mariadb mariadb-devel mariab-server
啟動 systemctl start mariadb
查看端口 netstat -anltp | grep 3306
查看進程 ps -ef | grep mysql
2.配置mraidb 服務器1配置文件
服務器節點1配置修改配置文件 文件路徑 /etc/my.cnf
[mysqld]
server-id = 1
log-bin=master1-bin
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
3.配置mariadb 服務器2配置文件
服務器節點2配置修改配置文件 文件路徑 /etc/my.cnf
[mysqld]
server-id=2
log-bin=master2-bin
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
4.服務器1配置
grant replication slave on *.* to tongbu@"%" identified by "123456";
change master to master_host="10.10.10.12",master_user="tongbu",master_password="123456",master_log_file="master2-bin.000001",master_log_pos=684;
開啟slave start slave;
5.服務器2配置
grant replication slave on *.* to tongbu@"%" identified by "123456";
change master to master_host="10.10.10.11",master_user="tongbu",master_password="123456",master_log_file="master1-bin.000001",master_log_pos=694;
開啟slave start slave;
二.部署nginx
1.節點服務器IP地址
10.10.10.13
2.源碼安裝nginx
安裝依賴包
yum install gcc gcc-c++ -y yum install pcre pcre-devel yum install zlib gzip zlib-devel -y yum -y install gcc gcc-c++ make zlib zlib-devel openssl openssl-devel pcre pcre-devel
3.編譯安裝
.
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
make && make install
4.啟動nginx 并查看相關進程
/usr/local/nginx/sbin/nginx
Ps –ef | grep nginx
5.修改nginx配置文件并整合PHP并測試
[root@dz nginx]# cat /usr/local/nginx/conf/nginx.conf
user www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type Application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name dz.jf.com;
location / {
root /html/dz.jf.com;
index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ .php$ {
root /html/dz.jf.com;
fastcgi_pass 10.10.10.12:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name wp.jf.com;
location / {
root /html/wp.jf.com;
index index.php;
}
location ~ .php$ {
root /html/wp.jf.com;
fastcgi_pass 10.10.10.14:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
三、部署PHP
1.PHP節點服務器-1 IP地址
10.10.10.12
2.PHP節點服務器-2 IP 地址
10.10.10.14
3.部署PHP
yum install php-devel php-mysql php-fpm -y
4.啟動PHP-FPM 并查看相關進程
Systemctl start php-fpm
[root@bogon wp.dz.com]# ps -ef | grep php
root 1566 1 0 17:57 ? 00:00:00 php-fpm: master process (/etc/php-fpm.conf)
Apache 1568 1566 0 17:57 ? 00:00:00 php-fpm: pool www
apache 1569 1566 0 17:57 ? 00:00:00 php-fpm: pool www
apache 1570 1566 0 17:57 ? 00:00:00 php-fpm: pool www
apache 1571 1566 0 17:57 ? 00:00:00 php-fpm: pool www
apache 1572 1566 0 17:57 ? 00:00:00 php-fpm: pool www
root 1717 1353 0 18:11 pts/1 00:00:00 grep --color=auto php
5.修改PHP的配置文件
/etc/php-fpm.d/www.conf
[www]
; Note: This value is mandatory.
listen = 10.10.10.12:9000 #將127.0.0.1改成實際的IP地址
; Set listen(2) backlog. A value of '-1' means unlimited.
; Default Value: -1
;listen.backlog = -1
; Default Value: any
;listen.allowed_clients = 127.0.0.1#注釋掉
四、安裝NFS
為了節省機器可以在nginx上面部署NFS服務器
1.安裝NFS
Nginx 服務器節點充當NFS服務段 安裝方式如下
yum install nfs* -y
yum portmap* -y
centos7的portmap現在名字是rpcbind
修改/etc/exports 文件
/html/ *(rw,no_root_squash,no_all_squash,sync)
2.查看NFS的進程
[root@dz html]# ps -ef | grep nfs
root 7045 2 0 19:00 ? 00:00:00 [nfsd4_callbacks]
root 7051 2 0 19:00 ? 00:00:00 [nfsd]
root 7052 2 0 19:00 ? 00:00:00 [nfsd]
root 7053 2 0 19:00 ? 00:00:00 [nfsd]
root 7054 2 0 19:00 ? 00:00:00 [nfsd]
root 7055 2 0 19:00 ? 00:00:00 [nfsd]
root 7056 2 0 19:00 ? 00:00:00 [nfsd]
root 7057 2 0 19:00 ? 00:00:00 [nfsd]
root 7058 2 0 19:00 ? 00:00:00 [nfsd]
root 7705 7607 0 20:15 pts/1 00:00:00 grep --color=auto nfs
3.PHP節點安裝NFS 客戶端
yum install nfs* -y
4.啟動NFS
Systemctl start nfs
5.掛載
mount -t nfs 10.10.10.13:/html /html
6.查看掛載是否成功
[root@bogon html]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda2 20G 5.8G 15G 29% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 253M 105M 148M 42% /boot
/dev/mapper/centos-data 30G 33M 30G 1% /data
tmpfs 98M 0 98M 0% /run/user/0
10.10.10.13:/html 20G 7.7G 13G 39% /html
7.NFS測試
在客戶端創建文件夾或者文件可以在服務端看到,在服務端創建文件在客戶端也可以看到,代表NFS服務正常
五.安裝論壇和wordpress
1.安裝wordpress
n 上傳源碼包到/html/wp.jf.com目錄(上傳機器為10.10.10.14 PHP-2)
n 解壓 tar –xvf wordpress-4.9.4-zh_CN.tar.gz
n Mv wordpress /* .
n 設置數據庫
2.安裝 discuz
n 上傳源碼包到/html/dz.jf.com目錄(上傳機器為10.10.10.12 PHP-1)
n 解壓 tar –xvf Discuz_X3.2_SC_UTF8.zip
n Mv upload/* .
n Chmod 777 * . –R 為了方便設置了777權限
3.設置數據庫
Create wordpress;
Create discuz;
grant all on discuz.* to root@"%" identified by "123456";
grant all on wordpress.* to root@"%" identified by "123456";