全部
常见问题
产品动态
精选推荐

服务集群部署思路

管理 管理 编辑 删除

目录

搭建服务

搭建该服务的所需环境

实现思路

搭建步骤

一、搭建LNMP-All in One

二、分离部署LNMP

三、分离LNMP部署完成后,将两组LNMP的MySQL设置为主主关系

四、Nginx负载均衡配置

五、DNS

六、客户端访问


搭建服务

77230202302211649279420.png

搭建该服务的所需环境

1.先行搭建LNMP-All in One

(IP:188.188.188.180)

2.搭建分离LNMP

(php-IP:188.188.188.188;nginx-ip:188.188.188.189;mysql-ip:188.188.188.190)

3.搭建两台静态apache服务器

(apache-1-IP:172.169.25.253;apache-2-IP:172.169.25.254)

4.搭建Nginx负载均衡,配置文件设置IP不可访问,动态为两组LNMP,静态为俩组apache。与三个网段建立连接

(Nginx-IP-1:192.168.1.2 、Nginx-IP-2:188.188.188.250、Nginx-IP-3:172.169.25.250)

5.DNS服务配置正向解析

(DNS-IP-1:192.168.1.10)

6.客户端访问

(IP:192.168.1.20)

实现思路

1.在搭建好所有环境之后,将两组LNMP放在同一个网段中(188.188.188.0),配置页面全部无误,放行端口,相互访问无误。

它的作用是提供动态页面

2. 搭建两台apache服务器后(172.169.25.0),配置静态页面内容。

它的作用是提供静态页面

3. 搭建Nginx负载均衡服务器后,设置三个网段,分别连接三种不同的服务,将这个服务配置与两种页面链接的内容,重启服务,放行端口后,进行访问,无误后进行下一步。

它的作用是在其他网段访问时,提供这两种不同网段的不同页面

4. 搭建DNS服务器,设置正向解析,本机使用域名访问,成功后便可使用客户端通过域名访问。

它的作用是将Nginx负载均衡的IP解析成为域名,使得客户端即使不使用IP便可访问到Nginx负载均衡服务器


搭建步骤

一、搭建LNMP-All in One

先预先装上所需要的环境和包

[root@zjx-0703-LNMP ~]# yum -y install gcc* ncurses-devel bison cmake
[root@zjx-0703-LNMP ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel 
[root@zjx-0703-LNMP ~]# yum -y install pcre* openssl*

mysql安装


[root@zjx-0703-LNMP ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mysql-5.5.22/
[root@zjx-0703-LNMP mysql-5.5.22]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DSYSCONFDIR=/etc/  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_EXTRA_CHARSETS=all
[root@zjx-0703-LNMP mysql-5.5.22]# make
[root@zjx-0703-LNMP mysql-5.5.22]# make install
[root@zjx-0703-LNMP mysql-5.5.22]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@zjx-0703-LNMP mysql-5.5.22]# useradd -s /sbin/nologin -M mysql
[root@zjx-0703-LNMP mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
[root@zjx-0703-LNMP mysql-5.5.22]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-LNMP mysql-5.5.22]# cd /usr/local/mysql/
[root@zjx-0703-LNMP mysql]#  scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 命令结果显示两个OK,成功
Installing MySQL system tables...
OK
Filling help tables...
OK
......


# 在profile文件中加入MySQL变量,并刷新内容,使其生效
[root@zjx-0703-LNMP mysql]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
[root@zjx-0703-LNMP mysql]# source /etc/profile


[root@zjx-0703-LNMP mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@zjx-0703-LNMP mysql]# chmod +x /etc/rc.d/init.d/mysqld 
[root@zjx-0703-LNMP mysql]# chkconfig --add mysqld
[root@zjx-0703-LNMP mysql]# systemctl restart mysqld

安装php

# 安装三个所需依赖包
[root@zjx-0703-LNMP mysql]# cd
[root@zjx-0703-LNMP ~]# tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/libmcrypt-2.5.8/
[root@zjx-0703-LNMP libmcrypt-2.5.8]# ./configure && make && make install
[root@zjx-0703-LNMP libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib
[root@zjx-0703-LNMP libmcrypt-2.5.8]# cd
[root@zjx-0703-LNMP ~]# tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mhash-0.9.9.9/
[root@zjx-0703-LNMP mhash-0.9.9.9]# ./configure && make -j 4 && make install
[root@zjx-0703-LNMP mhash-0.9.9.9]#  ln -s /usr/local/lib/libmhash..* /usr/lib
[root@zjx-0703-LNMP mhash-0.9.9.9]#  cd
[root@zjx-0703-LNMP ~]#  tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mcrypt-2.6.8/
[root@zjx-0703-LNMP mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@zjx-0703-LNMP mcrypt-2.6.8]# ./configure && make -j 4 && make install

安装php并进行配置

[root@zjx-0703-LNMP mcrypt-2.6.8]#  cd
[root@zjx-0703-LNMP ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/php-5.3.28/
[root@zjx-0703-LNMP ~]# ./configure  --prefix=/usr/local/php  --with-gd --with-zlib  --with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-config-file-path=/usr/local/php  --enable-fpm  --enable-mbstring  --with-jpeg-dir=/usr/lib
[root@zjx-0703-LNMP ~]# make && make install
[root@zjx-0703-LNMP php-5.3.28]# cp php.ini-development /usr/local/php/php.ini


# php.ini文件中找到并修改以下内容
[root@zjx-0703-LNMP php-5.3.28]# vim /usr/local/php/php.ini 
default_charset = "utf-8"
short_open_tag = On


[root@zjx-0703-LNMP php-5.3.28]# cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@zjx-0703-LNMP php-5.3.28]# chmod +x /etc/init.d/php-fpm 
[root@zjx-0703-LNMP php-5.3.28]# chkconfig --add php-fpm
[root@zjx-0703-LNMP php-5.3.28]# cd /usr/local/php/etc/
[root@zjx-0703-LNMP etc]# cp php-fpm.conf.default php-fpm.conf


# php-fpm.conf配置文件中找到并修改以下内容
[root@zjx-0703-LNMP etc]# vim php-fpm.conf
# 去注释
pid = run/php-fpm.pid
......
# 改参数
pm.max_children = 50
......
pm.start_servers = 20
......
pm.min_spare_servers = 5
......
pm.max_spare_servers = 35


安装php模块

[root@zjx-0703-LNMP etc]# cd
[root@zjx-0703-LNMP ~]# tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
[root@zjx-0703-LNMP php-5.3.x]# cp ZendGuardLoader.so /usr/local/php/lib/php/
[root@zjx-0703-LNMP php-5.3.x]# systemctl restart php-fpm


安装nginx

[root@zjx-0703-LNMP ~]# tar zxvf nginx-1.6.2.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]#  cd /usr/src/nginx-1.6.2/
[root@zjx-0703-LNMP nginx-1.6.2]#  ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
[root@zjx-0703-LNMP nginx-1.6.2]#  make && make install
[root@zjx-0703-LNMP nginx-1.6.2]# useradd -r -s /sbin/nologin nginx
[root@zjx-0703-LNMP nginx-1.6.2]# cd /usr/local/nginx
[root@zjx-0703-LNMP nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/


# nginx.conf配置文件中找到并修改以下内容
[root@zjx-0703-LNMP nginx]# vim /usr/local/nginx/conf/nginx.conf
user  nginx;
worker_processes  1;

#error_log  logs/error.log;
error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


重启nginx并访问

[root@zjx-0703-LNMP nginx]# nginx -t
# 出现这些为成功,如果出错,根据报错内容进行修改
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zjx-0703-LNMP nginx]# nginx
[root@zjx-0703-LNMP nginx]# firefox 127.0.0.1


当你看到该内容时,说明你已经安装成功,接下来进行平滑升级

deeb6202302211712317478.png

[root@zjx-0703-LNMP ~]# tar zxvf nginx-1.11.5.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/nginx-1.11.5/
[root@zjx-0703-LNMP nginx-1.11.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make 

[root@zjx-0703-LNMP nginx-1.11.5]# cd /usr/local/nginx/sbin/
[root@zjx-0703-LNMP sbin]# mv nginx /usr/local/sbin/nginx_old
[root@zjx-0703-LNMP sbin]# cd /usr/src/nginx-1.11.5/objs/
[root@zjx-0703-LNMP objs]# cp nginx /usr/local/nginx/sbin/
[root@zjx-0703-LNMP objs]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`


# nginx.conf配置文件找到并修改
[root@zjx-0703-LNMP objs]# vim /usr/local/nginx/conf/nginx.conf
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        location /status{
                stub_status on;
                access_log off;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #


[root@zjx-0703-LNMP objs]# nginx -s reload
[root@zjx-0703-LNMP objs]# firefox 127.0.0.1/status


当你看到这个页面说明成功

feb23202302211712245593.png

接下来开始静态页面的配置


[root@zjx-0703-LNMP ~]# vim /usr/local/nginx/conf/nginx.conf
# 找到并修改下方内容
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /www;
            fastcgi_pass   188.188.188.180:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
             include        fastcgi.conf;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one


# 找到并修改下方内容
[root@zjx-0703-LNMP ~]# vim /usr/local/php/etc/php-fpm.conf

......
user = nginx
group = nginx

......
listen = 188.188.188.180:9000

......


创建文件,并加入页面内容


[root@zjx-0703-LNMP ~]# mkdir /www
[root@zjx-0703-LNMP ~]# vim /www/index.php 
<?php
        echo "zhaha"
?>


访问

[root@zjx-0703-LNMP ~]# firefox 188.188.188.180/index.php

访问成功

15d63202302211712172725.png

制作与MySQL关联的PHP页面


[root@zjx-0703-LNMP ~]# mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.22 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 给root用户设置密码
mysql> set password=password("123.com");
Query OK, 0 rows affected (0.01 sec)
# 给zzz用户授权,密码为123.com
mysql> grant all on *.* to 'zzz'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
# 刷新用户信息
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> 	exit;


修改页面,并访问

[root@zjx-0703-LNMP ~]# vim /www/index.php 
<?php
        $servername="188.188.188.180";
        $username="zzz";
        $password="123.com";
        $conn=mysqli_connect($servername,$username,$password);
        if(!$conn){
                die("cannot connect!!!");
        }
        echo "success connect-1";
?>

[root@zjx-0703-LNMP ~]# firefox 188.188.188.180/index.php


如果访问不成功重启服务

还是访问不到就重启PC,或者多次给MySQL授权

7bdfc202302211712048044.png

之后给php服务器安装扩展库mysqli


[root@zjx-0703-LNMP ~]# cd /usr/local/php/
[root@zjx-0703-LNMP php]# ln -s /usr/local/php/bin/phpize /usr/bin/
[root@zjx-0703-LNMP php]# cd /usr/src/php-5.3.28/ext/mysqli
[root@zjx-0703-LNMP mysqli]# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
# 根据下方内容判断,是否需要安装安装依赖环境
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

[root@zjx-0703-LNMP mysqli]# yum -y install autoconf

[root@zjx-0703-LNMP mysqli]# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
# 这种结果为可编译配置了
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
[root@zjx-0703-LNMP mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config

[root@zjx-0703-LNMP mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=mysqlnd
[root@zjx-0703-LNMP mysqli]# make

[root@zjx-0703-LNMP mysqli]# make test

[root@zjx-0703-LNMP mysqli]# make install

[root@zjx-0703-LNMP mysqli]# vim /usr/local/php/php.ini 


/usr/local/php/php.ini 文件中加入以下内容

90929202302211711537748.png

重启服务,并访问


[root@zjx-0703-LNMP mysqli]# systemctl restart php-fpm
[root@zjx-0703-LNMP mysqli]# nginx -s reload
[root@zjx-0703-LNMP mysqli]# firefox 188.188.188.180/index.php


放行服务

[root@zjx-0703-PHP ~]# firewall-cmd --add-service=msql
success
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=mysql --permanent 
success

[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent 
success

[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success

[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=3306/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent 
success


至此,整合的LNMP完成

二、分离部署LNMP

与整合LNMP操作相同

nginx

[root@zjx-0703-Nginx ~]#  yum -y install pcre* openssl*
[root@zjx-0703-Nginx ~]#  tar zxvf nginx-1.6.2.tar.gz -C /usr/src/
[root@zjx-0703-Nginx ~]#  cd /usr/src/nginx-1.6.2/
[root@zjx-0703-Nginx nginx-1.6.2]#  ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
[root@zjx-0703-Nginx nginx-1.6.2]# make && make install
[root@zjx-0703-Nginx ~]# useradd -r -s /sbin/nologin nginx
[root@zjx-0703-Nginx ~]# cd /usr/local/nginx
[root@zjx-0703-Nginx nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/


[root@zjx-0703-Nginx nginx]# vim /usr/local/nginx/conf/nginx.conf
user  nginx;
worker_processes  1;

#error_log  logs/error.log;
error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


[root@zjx-0703-Nginx nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zjx-0703-Nginx nginx]# nginx


平滑升级


[root@zjx-0703-Nginx ~]# tar zxvf nginx-1.11.5.tar.gz -C /usr/src/
[root@zjx-0703-Nginx ~]# cd /usr/src/nginx-1.11.5/
[root@zjx-0703-Nginx nginx-1.11.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make 
[root@zjx-0703-Nginx ~]# cd /usr/local/nginx/sbin/
[root@zjx-0703-Nginx sbin]# mv nginx /usr/local/sbin/nginx_old
[root@zjx-0703-Nginx sbin]# cd /usr/src/nginx-1.11.5/objs/
[root@zjx-0703-Nginx objs]# cp nginx /usr/local/nginx/sbin/
[root@zjx-0703-Nginx objs]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`


安装MySQL


[root@zjx-0703-MySQL ~]# yum -y install gcc* ncurses-devel bison cmake
[root@zjx-0703-MySQL ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
[root@zjx-0703-MySQL ~]# cd /usr/src/mysql-5.5.22/
[root@zjx-0703-MySQL mysql-5.5.22]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DSYSCONFDIR=/etc/  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_EXTRA_CHARSETS=all
[root@zjx-0703-MySQL mysql-5.5.22]# make
[root@zjx-0703-MySQL mysql-5.5.22]# make install
[root@zjx-0703-MySQL mysql-5.5.22]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@zjx-0703-MySQL mysql-5.5.22]# useradd -s /sbin/nologin -M mysql
[root@zjx-0703-MySQL mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
[root@zjx-0703-MySQL mysql-5.5.22]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@zjx-0703-MySQL mysql-5.5.22]# cd /usr/local/mysql/
[root@zjx-0703-MySQL mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Installing MySQL system tables...
OK
Filling help tables...
OK


[root@zjx-0703-MySQL mysql]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin


[root@zjx-0703-MySQL mysql]# source /etc/profile
[root@zjx-0703-MySQL mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@zjx-0703-MySQL mysql]# chmod +x /etc/rc.d/init.d/mysqld 
[root@zjx-0703-MySQL mysql]# chkconfig --add mysqld
[root@zjx-0703-MySQL mysql]# systemctl restart mysqld


安装PHP

[root@zjx-0703-PHP ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel 
[root@zjx-0703-PHP mysql]# cd
[root@zjx-0703-PHP ~]# tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/libmcrypt-2.5.8/
[root@zjx-0703-PHP libmcrypt-2.5.8]# ./configure && make && make install
[root@zjx-0703-PHP libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib
[root@zjx-0703-PHP libmcrypt-2.5.8]# cd
[root@zjx-0703-PHP ~]# tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/mhash-0.9.9.9/
[root@zjx-0703-PHP mhash-0.9.9.9]# ./configure && make -j 4 && make install
[root@zjx-0703-PHP mhash-0.9.9.9]#  ln -s /usr/local/lib/libmhash..* /usr/lib
[root@zjx-0703-PHP mhash-0.9.9.9]#  cd
[root@zjx-0703-PHP ~]#  tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/mcrypt-2.6.8/
[root@zjx-0703-PHP mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@zjx-0703-PHP mcrypt-2.6.8]# ./configure && make -j 4 && make install
[root@zjx-0703-PHP mcrypt-2.6.8]#  cd
[root@zjx-0703-PHP ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/php-5.3.28/
[root@zjx-0703-PHP php-5.3.28]# ./configure  --prefix=/usr/local/php  --with-gd --with-zlib  --with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-config-file-path=/usr/local/php  --enable-fpm  --enable-mbstring  --with-jpeg-dir=/usr/lib
[root@zjx-0703-PHP php-5.3.28]# make && make install
[root@zjx-0703-PHP php-5.3.28]# cp php.ini-development /usr/local/php/php.ini
[root@zjx-0703-PHP php-5.3.28]# vim /usr/local/php/php.ini 


至此,三个基本环境安装完成


将三者整合建立连接

PHP与Nginx整合


进入PHP创建nfs共享目录,


[root@zjx-0703-PHP ~]# mkdir /www
[root@zjx-0703-PHP ~]# vim /etc/exports


在文件中插入下面内容


/www 188.188.188.0/24(sync,rw,no_root_squash)


检测


[root@zjx-0703-PHP php-5.3.x]# exportfs -rv
exporting 188.188.188.0/24:/www


重启服务,放行服务


[root@zjx-0703-PHP ~]# systemctl restart nfs
[root@zjx-0703-PHP ~]# systemctl restart rpcbind
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=nfs
success
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent 
success


在nginx中,创建共享文件目录/www,修改主配置文件与PHP服务器关联


[root@zjx-0703-Nginx ~]# mkdir /www
[root@zjx-0703-Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /www;
            # 写入PHP的IP
            fastcgi_pass   188.188.188.188:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

        # deny access to .htaccess files, if Apache's document root
[root@zjx-0703-Nginx ~]# nginx -s reload


挂载共享目录


[root@zjx-0703-Nginx ~]# mount -t nfs 188.188.188.188:/www /www/
[root@zjx-0703-Nginx ~]# df -Th /www/
文件系统             类型  容量  已用  可用 已用% 挂载点
188.188.188.188:/www nfs4   17G  4.3G   13G   26% /www


搭建网页,并访问


[root@zjx-0703-Nginx ~]# vim /www/index.php
# 文件中加如下面内容
<?php
        echo "kkk"
?>
[root@zjx-0703-Nginx ~]# firefox 188.188.188.189/index.php


PHP与Nginx整合成功,访问成功

b0ea420230221171119220.png

MySQL与php的整合


  MySQL授权用户


[root@zjx-0703-LNMP ~]# mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.22 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password=password("123.com");
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to 'zzz'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> 	exit;


index.php文件修改内容


[root@zjx-0703-MySQL ~]# vim /www/index.php 
<?php
        $servername="188.188.188.190";
        $username="zzz";
        $password="123.com";
        $conn=mysqli_connect($servername,$username,$password);
        if(!$conn){
                die("cannot connect!!!");
        }
        echo "success connect";
?>


创建共享目录,并挂载


[root@zjx-0703-MySQL ~]# mkdir /www
[root@zjx-0703-MySQL ~]# mount -t nfs 188.188.188.188:/www /www/


放行服务


[root@zjx-0703-MySQL ~]# firewall-cmd --zone=public --add-port=3306/tcp
success
[root@zjx-0703-MySQL ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent 
success
[root@zjx-0703-MySQL ~]# firewall-cmd --add-service=mysql
success
[root@zjx-0703-MySQL ~]# firewall-cmd --add-service=mysql --permanent 
success


Nginx放行服务


[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success


当在nginx中访问到success connect便说明成功

4336e202302211710594039.png

至此,第二组LNMP成功


三、分离LNMP部署完成后,将两组LNMP的MySQL设置为主主关系

两台的设置都相同,但是server-id不能相同

报错解决

主1


[root@zjx-0703-LNMP ~]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-LNMP ~]# vim my.cnf
# binary logging is required for replication
log-bin=master-bin
log-slave-updata=true

# binary logging format - mixed recommended
binlog_format=mixed

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id       = 11

# Replication Slave (comment out master section to use this)

[root@zjx-0703-LNMP ~]# systemctl restart mysqld


主2


[root@zjx-0703-MySQL ~]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-MySQL ~]# vim my.cnf
# binary logging is required for replication
log-bin=master-bin
log-slave-updata=true

# binary logging format - mixed recommended
binlog_format=mixed

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id       = 12

# Replication Slave (comment out master section to use this)

[root@zjx-0703-MySQL ~]# systemctl restart mysqld


配置MySQL-1时同时配置MySQL-2

MySQL-1配置


mysql> mysql> grant replication slave on *.*to'kms'@'188.188.188.% ' identified by'123.com';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000004 |      107 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host='188.188.188.190',master_user='kkk',master_password='123.com',master_log_file='master-bin-bin.000001',master_log_pos=107;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G

3534d20230221171020732.png


MySQL-2


mysql> grant replication slave on *.*to'kkk'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000003 |      334 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host='188.188.188.180',master_user='kms',master_password='123.com',master_log_file='master-bin-bin.000004',master_log_pos=107;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G

cdd9b202302211710066381.png


四、Nginx负载均衡配置

[root@zjx-0703-Nginx-load ~]#  vim /usr/local/nginx/conf/nginx.conf
    #gzip  on;
    #静态页面访问地址
     upstream zzz{
        # 服务器地址,页面IP:端口  工作优先级  最大失败次数  连接超时时间
             server 172.169.25.253:80 weight=2 max_fails=2 fail_timeout=30s;
             server 172.169.25.254:80 weight=3 max_fails=2 fail_timeout=30s;
     }
     动态页面访问地址
    upstream kkk{
        server 188.188.188.180:80 weight=2 max_fails=2 fail_timeout=30s;
        server 188.188.188.189:80 weight=2 max_fails=2 fail_timeout=30s;
    }
    server {
        listen       80;


        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # 静态页面访问配置
        location ~*\.(html|gif|png|jpeg|jpg) {
                  proxy_pass      http://zzz;
        }
        # 动态页面访问配置
        location ~ \.php$ {
            proxy_pass  http://kkk;
            proxy_redirect  off;
            proxy_set_header  Host  $host;
            proxy_set_header  X_Real_IP  $remote_addr;
            proxy_set_header  X_Forward_For  $proxy_add_x_forwarded_for;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #


nginx -s reload


进入IP地址配置文件,将IP获取方式改为static,之后在下面加入改内容


IPADDR0=192.168.1.2
NETMASK0=255.255.255.0
IPADDR1=188.188.188.250
NETMASK1=255.255.255.0
IPADDR2=172.169.25.250
NETMASK=255.255.255.0


[root@zjx-0703-Nginx-load ~]#  ip addr 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:3f:27:ac brd ff:ff:ff:ff:ff:ff
    inet 172.169.25.250/16 brd 172.169.255.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 188.188.188.250/24 brd 188.188.188.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::b3e1:947a:855d:f4cf/64 scope link 
       valid_lft forever preferred_lft forever


与以他两个服务器ping通之后就OK了


五、DNS

[root@zjx-0703-DNS ~]#  yum -y install bind
[root@zjx-0703-DNS ~]# vim /etc/*/*/*ens33
[root@zjx-0703-DNS ~]# systemctl restart network
[root@zjx-0703-DNS ~]# vim /etc/named.conf 

[root@zjx-0703-DNS ~]# cd /var/named/
[root@zjx-0703-DNS named]#  cp -p named.localhost proncomix.zone
[root@zjx-0703-DNS named]#  vim /etc/named.rfc1912.zones 
[root@zjx-0703-DNS named]#  vim proncomix.zone 
[root@zjx-0703-DNS named]#  systemctl restart named


# named.rfc1912.zones在该配置文件文末添加以下内容
[root@zjx-0703-DNS ~]# vim /etc/named.rfc1912.zones 
zone "proncomix.com" IN {
        type master;
        file "proncomix.zone";
};


/etc/named.conf在该配置文件文末添加以下内容

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };


修改正向解析数据文件

[root@zjx-0703-DNS ~]# vim /var/named/proncomix.zone 
$TTL 1D
@       IN SOA  proncomix.com. root.proncomix.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.1.2
        AAAA    ::1
www     A       192.168.1.2


[root@zjx-0703-DNS ~]# vim /etc/hosts
192.168.1.2 www.proncomix.com

六、客户端访问

重启服务后,用客户端访问

在客户端上指定一下DNS

客户端IP—192.168.1.20

[root@zjx-0703-client ~]# vim /etc/resolv.conf 
nameserver 192.168.1.10


访问即可

# 访问静态
[root@zjx-0703-client ~]# firefox www.proncomix.com/


刷新页面时,出现两个不同页面,访问成功

81039202302211708253379.png

773cd202302211708296902.png

# 访问动态数据库
[root@zjx-0703-client ~]# firefox www.proncomix.com/index.php

a386b202302211708126331.png

4b8bf202302211708175297.png

当使用IP访问Nginx是,发现能访问成功

所以到Nginx主配置文件添加内容


[root@zjx-0703-Nginx-load ~]#  vim /usr/local/nginx/conf/nginx.conf
# 添加一个server,设置为使用IP访问便报错404
server {
	listen 80 default;
	return 404;
}

客户端在试着访问

6740e202302211707504044.png

至此,实验完成

原文链接: https://blog.csdn.net/jfcjjg/article/details/107077659

请登录后查看

CRMEB-慕白寒窗雪 最后编辑于2023-02-21 17:15:12

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
1596
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服