作业

    技术2022-07-12  68

    这里写目录标题

    搭建服务搭建该服务的所需环境实现思路 搭建步骤一、搭建LNMP-All in One二、分离部署LNMP三、分离LNMP部署完成后,将两组LNMP的MySQL设置为主主关系四、Nginx负载均衡配置五、DNS六、客户端访问

    搭建服务

    搭建该服务的所需环境

    先行搭建LNMP-All in One (IP:188.188.188.180)搭建分离LNMP (php-IP:188.188.188.188;nginx-ip:188.188.188.189;mysql-ip:188.188.188.190)搭建两台静态apache服务器 (apache-1-IP:172.169.25.253;apache-2-IP:172.169.25.254)搭建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)DNS服务配置正向解析 (DNS-IP-1:192.168.1.10)客户端访问 (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

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

    [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

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

    接下来开始静态页面的配置 [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

    访问成功

    制作与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授权

    之后给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 文件中加入以下内容 重启服务,并访问

    [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整合成功,访问成功

    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便说明成功

    至此,第二组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

    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

    四、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/

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

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

    当使用IP访问Nginx是,发现能访问成功 所以到Nginx主配置文件添加内容

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

    客户端在试着访问 至此,实验完成

    Processed: 0.010, SQL: 9