目录
搭建服务
搭建该服务的所需环境
实现思路
搭建步骤
一、搭建LNMP-All in One
二、分离部署LNMP
三、分离LNMP部署完成后,将两组LNMP的MySQL设置为主主关系
四、Nginx负载均衡配置
五、DNS
六、客户端访问
搭建服务
搭建该服务的所需环境
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
当你看到该内容时,说明你已经安装成功,接下来进行平滑升级
[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;
}
客户端在试着访问
至此,实验完成
原文链接: https://blog.csdn.net/jfcjjg/article/details/107077659