nt高可用部署

卢掌柜的發表於2024-06-15
一:準備環境,
共7臺雲主機,50M頻寬,做nat對映,因為需要聯網下安裝包和除錯,5臺centos7.9,分別部署nginx負載均衡,mysql8.0主從,web主從,1臺windows測試內網使用情況,nas盤對映到兩臺web雲主機上;
nginx1:192.168.98.141
mysql1:192.168.98.251
mysql2:192.168.98.204
web1:192.168.98.109
web2:192.168.98.85
windows:192.168.98.57
安全組放行並做好網路對映,可以分別遠端到各主機

二、部署前工作:5臺centos主機都需要進行update更新(需要更新成阿里雲的源),以下操作為root使用者登入操作
1、更新阿里源並進行更新,關閉系統防火牆
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum -y update
systemctl stop firewalld
systemctl disable firewalld

三、安裝資料庫(2臺資料庫安裝方式一樣),後配置主從
1、安裝wget工具
yum -y install wget
2、安裝對應依賴
yum install net-tools
yum install -y perl-Module-Install.noarch
3、查詢是否安裝了mariadb
rpm -qa | grep mariadb
4、如果有內容就需要進行解除安裝,與mysql衝突
yum -y remove mariadb*
5、建立資料夾並下載mysql安裝包
cd /opt
mkdir mysql
cd /opt/mysql
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
<!-- 如果下載緩慢可以直接用迅雷下載好傳到對應目錄即可,本次提供安裝包 -->
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
6、安裝mysql
rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm

7、啟動服務&設定開機自啟動
systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld
8、檢視初始密碼
cat /var/log/mysqld.log | grep password
9、登入
mysql -uroot -p
10、更改密碼和加密方式,重新整理
ALTER USER root@localhost IDENTIFIED BY 'Nihao135@';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Nihao135@' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
11、進入mysql資料庫,允許root遠端登入資料庫
use mysql;
update user set host = '%' where user = 'root';
exit;
12、重啟mysql服務
systemctl restart mysqld
13、配置資料庫主從
1)、在主伺服器上,修改/etc/my.cnf檔案,在最後加上兩行
#伺服器 id,隨意,但要唯一
server-id = 1
#二進位制檔案存放路徑
log-bin = mysql-bin
2)、重啟mysql服務
systemctl restart mysqld
mysql -uroot -pNihao135@
use mysql;
<!-- 建立同步用的賬號密碼並授權 -->
create user slave@'%' identified by 'Nihao135@';
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
<!-- 檢視資料庫狀態,要記住File和Position的值,後面從伺服器配置檔案要用 -->
show master status;
3)、在從伺服器上修改/etc/my.cnf檔案,在最後加上兩行
#伺服器 id,隨意,但要唯一
server-id = 2
<!-- 不要和主伺服器id重複 -->
#二進位制檔案存放路徑
log-bin = mysql-bin
4)、重啟mysql服務
systemctl restart mysqld
mysql -uroot -pNihao135@
STOP SLAVE;
<!-- 停止同步服務 -->
CHANGE MASTER TO
MASTER_HOST = '192.168.98.251',
MASTER_USER = 'slave',
MASTER_PASSWORD = 'Nihao135@',
MASTER_LOG_FILE = 'mysql-bin.000002',
<!-- 上面主伺服器的File值 -->
MASTER_LOG_POS = 2830;
<!-- 上面主伺服器的Position值 -->
<!-- 開啟同步 -->
start slave;
<!-- 檢視狀態 -->
show slave status\G;
<!-- 只要看到Slave_IO_Running: Slave_SQL_Running都顯示yes就是正常了 ,可以建立資料庫看是否可以正常同步了,注意隨著長時間執行,mysql的日誌也會越來越多,維護時要注意清理-->

四、部署web應用,搭建雙入口負載均衡
1、安裝httpd和php7.4的環境(軟體部署要求7.3以上的環境),兩臺同樣的配置
yum -y install httpd
systemctl enable httpd
systemctl start httpd
<!-- 安裝php7.4 -->
yum install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php74
yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
<!-- 檢視一下版本是否正常 -->
php -v
systemctl start php-fpm
systemctl enable php-fpm
<!-- 需要修改一下php預設上傳的大小限制,改成500m並重啟,檢測站切片檔案都不會超過500m -->
vi /etc/php.ini
upload_max_filesize = 500M
systemctl restart php-fpm
2、部署雲盤軟體
<!-- 將軟體複製到/var/www/html下 -->
cd /var/www/html
unzip nextcloud-23.0.3.zip
mv nextcloud/* /var/www/html/
chmod -R 777 /var/www/html/
3、將兩臺web伺服器重啟一下,部分場景下可能會出現php不生效的情況,重啟即可
瀏覽器訪問192.168.98.109,按照引導填入對應的資訊安裝即可安裝,部分情況下需求修改對應的配置檔案,主要是資料庫的資訊
vi /var/www/html/config/config.php
在最後要新增一行
'check_data_directory_permissions' => false,
最終效果兩個config檔案連線同一個資料庫即可
預設雲盤的儲存路徑是/var/www/html/data,需要掛外NAS儲存,例如路徑為/opt/bigdata
mkdir /opt/bigdata
mount -t nfs -o vers=3,nolock 10.73.2.37:/d7239770-ba18-4807-96cb-3afc7c6d6ff5 /opt/bigdata
<!-- 上面是大雲掛載nas例項的方法,蘇研要按照具體方式掛載到對應目錄並賦予許可權 -->
chmod -R 777 /opt/bigdata
cp /var/www/html/.ocdata /opt/bigdata
<!-- 如果沒有一定要複製一個.ocdata檔案過來,否則會報錯的 -->
yum install nfs-utils
vi /etc/fstab
<!-- 在最後一行加上如下,讓nas開機後能自動掛載上來 -->
10.73.2.37:/d7239770-ba18-4807-96cb-3afc7c6d6ff5 /opt/bigdata nfs defaults 0 0

五、nginx反向代理負載均衡
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel gd gd-devel
yum -y install nginx
systemctl start nginx
systemctl enable nginx
vi /etc/nginx/nginx.conf
加入程式碼塊

upstream jdcjcecs {
ip_hash;
server 192.168.98.109 weight=1;
server 192.168.98.85 weight=1;
}

server {
listen 80;
location / {
proxy_pass http://jdcjcecs;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
client_max_body_size 512M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
}
儲存退出後
systemctl reload nginx
systemctl restart nginx

相關文章