实战项目演练
- 1.问题描述
- 2.实验操作步骤
- 2.1 CentOS 7-1客户端配置
- 2.2 CentOS 7-2网关服务器配置
- 2.3 CentOS 7-8 (Web1:Tomcat服务器)
- 2.3.1 安装Tomcat服务器
- 2.3.2 提供四层反向代理的动态页面
- 2.4 CentOS 7-9 (Nginx服务器)
- 2.4.1 安装Nginx服务
- 2.4.2 安装MySQL服务
- 2.4.3 安装配置PHP中间件
- 2.4.4 部署Discuz社区论坛Web应用
- 2.4.5 配置Nginx虚拟主机
- 2.4.6 对虚拟主机域名www.benet.com的nginx服务调优
- 2.4.7 基于域名的跳转
- 2.4.8 基于www.benet.com域名的动静分离(四层反向代理)
- 2.5 CentOS 7-10 (Web2:Tomcat服务器)
1.问题描述
服务器IP地址规划:client:12.0.0.12/24,网关服务器:ens35:12.0.0.1/24、ens33:192.168.80.1/24,Web1:192.168.80.80/24,Web2:192.168.80.100/24,Nginx:192.168.80.90/24。
(1)在Nginx服务器上搭建LNMP服务,并且能够对外提供Discuz论坛服务。
在Web1、Web2服务器上搭建Tomcat 服务。
(2)为nginx服务配置虚拟主机,新增两个域名www.kgc.com 和 www.benet.com,使用http://www.kgc.com/bbs/index.php可访问上一题的Discuz论坛页面。
使用http://www.benet.com则访问/var/www/html目录中的index.html文件的内容,内容自定义。
(3)对基于www.benet.com域名的虚拟机主机的nginx服务调优:隐藏nginx版本号,缓存静态图片网页时间为1天,设置网页压缩与防盗链功能。
(4)网关服务器搭建NFS服务,提供的文件系统使用LVM类型,共享目录名称为/opt/nfs;要求根据日期对Discuz论坛服务的访问日志进行日志分割,要求每天生成一份日志文件,保存到NFS服务共享的目录内容。
(5)要求配置location匹配请求地址http://www.kgc.com/test/XXXX,使用户访问该路径下的文件时返回/var/share/nginx/html/目录下的文件内容。
要求使用rewrite将使用域名www.benet.com 请求以 .php 结尾的访问都跳转到域名www.kgc.com上,而且后面的参数保持不变,比如访问http://www.benet.com/bbs/index.php跳转到http://www.kgc.com/bbs/index.php。
(6)在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat 服务器处理,并实现负载均衡.
(7)在网关服务器上设置SNAT/DNAT,使client使用网关服务器的ens36接口的IP地址访问也可实现上一题的效果。
2.实验操作步骤
2.1 CentOS 7-1客户端配置
2.2 CentOS 7-2网关服务器配置
###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
(1)设置网关服务器的网卡地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.80.20
NETMASK=255.255.255.0
cp -a /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens35
NAME=ens35
#UUID=7acafc56-e5b0-4abd-9a96-27db5a96e4b9
DEVICE=ens35
IPADDR=12.0.0.20
NETMASK=255.255.255.0
systemctl restart network
ifconfig
(2)搭建NFS服务
yum install nfs-utils rpcbind -y
###创建共享目录
mkdir /opt/nfs
chmod 777 /opt/nfs
vim /etc/exports
/opt/nfs 192.168.80.0/24(rw,sync)
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
showmount -e
(3) 设置SNAT/DNAT策略
在网关服务器上设置SNAT/DNAT,使client使用网关服务器的ens36接口的IP地址访问也可实现上一题的效果。
iptables -F
iptables -F -t nat
iptables -t nat -A PREROUTING -i ens35 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.80.90
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens35 -j SNAT --to 12.0.0.1
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
浏览器访问测试
http://12.0.0.1
2.3 CentOS 7-8 (Web1:Tomcat服务器)
2.3.1 安装Tomcat服务器
###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
(1)安装JDK
cd /opt
mkdir tomcat
cd /opt/tomcat
rz -E
tar xf apache-tomcat-9.0.16.tar.gz
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
mv apache-tomcat-9.0.16 /usr/local/tomcat
(2)设置JDK环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile.d/java.sh
java -version
(3)将tomcat服务加入到systemd系统文件中,启动tomcat.service服务并设置为开机自启
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
(4)启动tomcat服务
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
netstat -lntp | grep 8080
(5)浏览器访问
http://192.168.80.80:8080
2.3.2 提供四层反向代理的动态页面
在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat服务器处理,并实现负载均衡。
在Tomcat服务器中添加Nginx服务器的域名解析
echo "192.168.80.90 www.benet.com" >> /etc/hosts
在Tomcat服务器的根目录/usr/local/tomcat/webapps中添加.jsp文件的动态页面
mkdir -p /usr/local/tomcat/webapps/test
cd /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page!</title>
</head>
<body>
<% out.println("IP:192.168.80.80:80-----动态页面http://www.test1.com");%>
</body>
</html>
修改tomcat服务的主配置文件
cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak
vim /usr/local/tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1" #修改tomcat服务器的连接端口为80
----------删除148行和149行,然后添加如下内容-----------
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true">
</Context>
systemctl restart tomcat
netstat -lntp | grep java
浏览器访问测试
http://192.168.80.80:80
CentOS 7-8 Web1访问页面测试结果;
http://192.168.80.80:80
CentOS 7-10 Web1访问页面测试结果;
http://192.168.80.100:80
2.4 CentOS 7-9 (Nginx服务器)
2.4.1 安装Nginx服务
###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
(1)安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
(2)创建运行用户
useradd -M -s /sbin/nologin nginx
(3)编译安装
cd /opt
rz -E
tar xf nginx-1.24.0.tar.gz
cd nginx-1.24.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make -j4 && make install
(4)优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
(5)添加Nginx系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
(6)将nginx服务加入到systemd系统文件中,启动nginx服务并设置为开机自启
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
netstat -lntp | grep nginx
2.4.2 安装MySQL服务
(1)安装Mysql环境依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
(2)编译安装
cd /opt
mkdir mysql
cd /opt/mysql
rz -E
tar xf boost_1_59_0.tar.gz
tar xf mysql-5.7.17.tar.gz
mv boost_1_59_0 /usr/local/boost
cd mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
make -j4 && make install
(3)修改mysql配置文件
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
(4)创建运行用户
useradd -M -s /sbin/nologin mysql
(5)更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
(6)设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
(7)初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
(8)添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306
(9)修改mysql的登录密码
mysqladmin -u root password "123"
(10)授权远程登录
mysql -u root -p123
grant all privileges on *.* to 'root'@'%' identified by '123';
flush privileges;
2.4.3 安装配置PHP中间件
(1)安装环境依赖包
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
(2)编译安装
cd /opt
mkdir php
cd /opt/php
rz -E
tar -xf php-7.1.10.tar.bz2
cd php-7.1.10/
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
make -j4 && make install
(3)路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
(4)创建运行用户
useradd -M -s /sbin/nologin php
(5)调整PHP配置文件
###调整主配置文件:
cp /opt/php/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
---1170行---修改---
mysqli.default_socket = /usr/local/mysql/mysql.sock
---939行---取消注释,修改---
date.timezone = Asia/Shanghai
php -m #验证安装的模块
###调整进程服务配置文件:
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
---17行---去掉";"注释---
pid = run/php-fpm.pid
###调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf
user = php #--23行修改为系统中已存在的用户名
group = php #--24行修改为系统中已存在的用户名
listen = 192.168.80.90:9000 #--36行此处修改为php服务器的IP地址(监听php服务器的IP地址)
listen.allowed_clients = 192.168.80.90 #--62行此处修改为nginx服务器的IP地址(接收转发请求的客户端地址)
(6)启动php-fpm
cd /opt/php/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl daemon-reload
systemctl start php-fpm.service
systemctl enable php-fpm.service
netstat -lntp | grep 9000
(7)配置Nginx支持PHP解析
cd /usr/local/nginx/conf
mv nginx.conf nginx.conf.bak1
cp nginx.conf.default nginx.conf
vim /usr/local/nginx/conf/nginx.conf
---45行---修改---
index index.html index.htm index.php; #此处需要添加index.php
---65行---修改---
location ~ \.php$ { #--65行到71行取消注释
root html; fastcgi_pass 192.168.80.50:9000; #此处需要修改为Nginx服务器的ip地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值
include fastcgi_params;
}
nginx -t
systemctl restart nginx
(7)验证PHP测试页
cd /usr/local/nginx/html
vim index.php
<?php
phpinfo();
?>
mv index.html index.html.bak
浏览器访问
http://192.168.80.90/index.php
http://192.168.80.90 #访问这两个地址效果一样
(8)验证数据库工作是否正常
mysql -uroot -p123
create database bbs; #创建数据库bbs
show databases;
grant all on bbs.* to 'bbsadmin'@'%' identified by '123'; #允许用户bbsadmin从任意主机对bbs数据库的所有执行权限,并设置密码123
grant all on bbs.* to 'bbsadmin'@'localhost' identified by '123';#允许用户bbsadmin在本地对bbs数据库的所有执行权限,并设置密码123
flush privileges; #刷新权限
quit
vim /usr/local/nginx/html/test.php #配置连接数据库的测试页面
<?php
$link=mysqli_connect('192.168.80.90','bbsadmin','123');
if($link) echo "<h1>connect successfuly!!!</h1>";
else echo "<h1>connect failed!!!</h1>";
?>
浏览器访问
http://192.168.80.90/test.php
2.4.4 部署Discuz社区论坛Web应用
(1)复制论坛文件到nginx的网页根目录,并重命名为bbs
cd /opt
rz -E
unzip Discuz_X3.4_SC_UTF8.zip
cd dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs
浏览器访问
http://192.168.80.90/bbs
(2)调整论坛目录的权限
cd /usr/local/nginx/html/bbs
chown -R php data/ config/ uc_*
(3)论坛页面访问
数据库服务器:localhost #本地架设就用localhost,如果不是在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsadmin
数据库密码:123
管理员账号:admin
管理员密码:123
浏览器访问普通用户登录页面;
http://192.168.80.90/bbs/index.php
浏览器访问管理员登录页面;
http://192.168.80.90/bbs/admin.php
2.4.5 配置Nginx虚拟主机
(1)为虚拟主机提供域名解析
echo "192.168.80.90 www.kgc.com www.benet.com" >> /etc/hosts
(2)为虚拟主机准备网页文档
###www.benet.com域名的网页访问内容
echo "<h1>BENET:www.benet.com</h1>" > /var/www/html/index.html
###将bbs论坛的网页访问内容,移动到www.kgc.com域名的网页根目录下
cd /usr/local/nginx/html
(3)修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
......
#http { ###将以下内容放到http块中
......
server { ###www.benet.com域名的配置内容
listen 80;
server_name www.benet.com;
charset utf-8;
access_log logs/www.benet.access.log;
location / {
root /var/www/html; #此处定义www.benet.html网页的根目录为/var/www/html
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
server { ###www.kgc.com域名的配置内容
listen 80;
server_name www.kgc.com;
charset utf-8;
access_log logs/www.kgc.access.log;
location / {
root html; #此处定义www.kgc.html网页的根目录为/usr/local/nginx/html
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root html;
fastcgi_pass 192.168.80.90:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
} #
(4)重启服务,访问测试
nginx -t
systemctl restart nginx
浏览器访问
http://www.kgc.com/bbs
http://www.benet.com
通过www.kgc.com域名访问论坛网页内容;
通过www.benet.com域名访问到/var/www/html目录下自定义的网页内容;
2.4.6 对虚拟主机域名www.benet.com的nginx服务调优
隐藏Nginx服务的版本号
vim /usr/local/nginx/conf/nginx.conf
---第20行处添加下面内容---
server_tokens off;
nginx -t
systemctl restart nginx
验证访问测试
curl -I http://192.168.80.90
缓存静态图片网页时间为1天
在www.benet.com域名的网页根目录中添加图片
cd /var/www/html
rz -E
ls
###canshu.png index.html
<html>
<body>
<title>benet Web</title>
<h1>BENET:www.benet.com</h1>
<h1>look,my girl!!!</h1>
<img src="canshu.png" />
</body>
</html>
修改缓存关键字expires的参数
vim /usr/local/nginx/conf/nginx.conf
---------------------------------
server { ###在www.benet.com域名的server块中,添加以下内容
---------------------------------
#location / {
# root /var/www/html;
# index index.html index.php;
#}
location ~ \.(htm|html|gif|jpg|jpeg|png)$ { #加入新的location,以图片作为缓存对象
root /var/www/html;
expires 1d; #指定缓存时间,1天
}
}
nginx -t
systemctl restart nginx
浏览器验证访问测试
http://www.benet.com
设置网页压缩功能
vim /usr/local/nginx/conf/nginx.conf
---在http块中加入以下内容---
http {
---------------------------
gzip on;
gzip_min_length 1k;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
#}
nginx -t
systemctl restart nginx
浏览器验证访问测试
http://www.benet.com
设置防盗链功能
防盗链主机CentOS 7-9配置如下:
cd /var/www/html
rz -E
ls
canshu.png error.jpg index.html
vim /usr/local/nginx/conf/nginx.conf
---在http块中加入以下内容---
http {
---------------------------
#location ~ \.(gif|jpeg|png)$ {
# root /var/www/html;
# expires 1d;
valid_referers none blocked *.benet.com benet.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.benet.com/error.jpg;
}
#}
#}
nginx -t
systemctl restart nginx
盗链主机CentOS 7-10配置如下:
(1)创建tomcat虚拟主机的域名配置
echo "192.168.80.100 www.top100.com" >> /etc/hosts
echo "192.168.80.90 www.benet.com" >> /etc/hosts
(2)设置盗链主机的网关地址为防盗链主机的IP地址
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.80.90
(3)修改Tomcat服务的网页数据内容
cd /usr/local/tomcat/webapps/
mkdir daolian
vim /usr/local/tomcat/webapps/daolian/index.html
<html>
<body>
<title>daolian test</title>
<h1>this is dao lian web!!!!!</h1>
<img src="http://www.benet.com/canshu.png" />
</body>
</html>
(4)修改Tomcat主配置文件
vim /usr/local/tomcat/conf/server.xml
---165行前插入以下内容---
<Host name="www.top100.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/daolian" path="" reloadable="true" />
</Host>
systemctl restart tomcat
(5)浏览器验证访问测试
浏览器访问盗链主机
http://www.top100.com:8080
浏览器访问防盗链主机
http://www.benet.com
2.4.7 基于域名的跳转
(1)要求配置location匹配请求地址http://www.kgc.com/test/XXXX,使用户访问该路径下的文件时返回/var/share/nginx/html/目录下的文件内容。
在www.kgc.com域名的别名根目录/var/share/nginx/html中添加网页数据内容
mkdir -p /var/share/nginx/html
cd /var/share/nginx/html
rz -E
weihu.png
vim /var/share/nginx/html/index.html
<html>
<body>
<title>Alias kgc Web</title>
<h1>KGC:www.kgc.com,but my location:/var/share/nginx/html!!!</h1>
<h1>look,my girl!!!</h1>
<img src="weihu.png" />
</body>
</html>
修改Nginx服务的主配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.kgc.com;
charset utf-8;
access_log logs/www.kgc.access.log;
---------在www.kgc.com域名的server块中添加以下内容------------
location /test {
alias /var/share/nginx/html;
}
--------------------------------------------
location / {
root html;
index index.html index.htm index.php;
}
nginx -t
systemctl restart nginx
浏览器测试访问
http://www.kgc.com/test/index.html
(2)要求使用rewrite将使用域名www.benet.com 请求以 .php 结尾的访问都跳转到域名www.kgc.com上,而且后面的参数保持不变,比如访问http://www.benet.com/bbs/index.php跳转到http://www.kgc.com/bbs/index.php
修改Nginx服务的主配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.benet.com;
charset utf-8;
access_log logs/www.benet.access.log;
----------在www.benet.com域名的server块中添加如下内容---------
location ~* .*\.php$ {
if ($host = 'www.benet.com'){
rewrite ^/(.*)$ http://www.kgc.com/$1 permanent;
}
}
--------------------------------------------
}
nginx -t
systemctl restart nginx
浏览器测试访问
http://www.benet.com/bbs/index.php
2.4.8 基于www.benet.com域名的动静分离(四层反向代理)
在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离,由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat服务器处理,并实现负载均衡。
vim /usr/local/nginx/conf/nginx.conf
keepalive_timeout 0; #关闭长连接功能
http {
---------------在http块中添加如下内容-----------
upstream backend {
server 192.168.80.80:80 weight=1;
server 192.168.80.100:80 weight=1;
}
------------------------------------------------
server {
listen 80;
server_name www.benet.com;
charset utf-8;
access_log logs/benet.com-access.log;
---------------在www.benet.com域名的server中添加如下内容-----------
location ~* .*\.jsp$ {
proxy_pass http://backend;
proxy_set_header HOST $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
------------------------------------------------
}
}
nginx -t
systemctl restart nginx
浏览器测试访问
静态页面访问测试;
http://www.benet.com:80/test/index.html
动态页面访问测试;
http://www.benet.com:80/test/index.jsp
2.5 CentOS 7-10 (Web2:Tomcat服务器)
操作步骤同CentOS 7-8 (Web1:Tomcat服务器),此处略!!!