1、实验拓扑图
1.2 实验要求
1)在Nginx服务器上搭建LNMP服务,并且能够对外提供Discuz论坛服务。(10分)
在Web1、Web2服务器上搭建Tomcat 服务。(10分)
2)为nginx服务配置虚拟主机,新增两个域名 www.kgc.com 和 www.benet.com,使用http://www.kgc.com/index.php可访问上一题的Discuz论坛页面。(10分)
使用http://www.benet.com则访问/var/www/html目录中的index.html文件的内容,内容自定义。(10分)
3)对基于www.benet.com域名的虚拟机主机的nginx服务调优:隐藏nginx版本号,缓存静态图片网页时间为1天,设置防盗链功能。(10分)
4)网关服务器搭建NFS服务,提供的文件系统使用LVM类型,共享目录名称为/opt/nfs;要求根据日期对Discuz论坛服务的访问日志进行日志分割,要求每天生成一份日志文件,保存到NFS服务共享的目录内(10分)
5)要求配置location匹配请求地址http://www.kgc.com/test/XXXX,使用户访问该路径下的文件时返回/var/share/nginx/html/目录下的文件内容。(10分)
要求使用rewrite将使用域名www.benet.com 请求以 .php 结尾的访问都跳转到域名www.kgc.com上,而且后面的参数保持不变,比如访问http://www.benet.com/bbs/index.php跳转到http://www.kgc.com/bbs/index.php。(10分)
6)在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat 服务器处理,并实现负载均衡(10分)
7)在网关服务器上设置SNAT/DNAT,使client使用网关服务器的ens36接口的IP地址访问也可实现上一题的效果。(10分)
注:IP地址自己规划
2、在nginx服务器上搭建论坛服务
2.1 yum安装nginx
yum install -y nginx
systemctl start nginx.service
systemctl status nginx.service
2.2 yum安装mysql
tee /etc/yum.repos.d/mysql.repo <<EOF
25 [mysql57-community]
26 name=MySQL 5.7 Community Server
27 baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
28 enabled=1
29 gpgcheck=0
30 EOF
##yum安装
yum -y install mysql-community-server
grep password /var/log/mysqld.log
systemctl start mysqld
数据库内的操作
[root@localhost ~]# mysql -uroot -p'yo,gICbCt6Gh'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.44
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
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 global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user root@'localhost' identified by 'abc123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql>
2.3 编译安装php
php的编译安装
本次使用的php软件包为:php-7.1.10.tar.bz2
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
tar jxvf 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 -j2 && make install
3、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
调整php配置文件
#调整主配置文件:
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
--939行--取消注释,修改
date.timezone = Asia/Shanghai
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
#调整进程服务配置文件:
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
#用service文件启动php模块
cp /opt/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service
2.4 配置NGINX 支持PHP解析
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
测试PHP是否能解析
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
进入数据库创建数据库
mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
验证数据库的操作
vim /usr/local/nginx/html/index.php #替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.91.100','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
#浏览器访问
http://192.168.107.190/index.php
2.5 安装论坛
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip
cd /opt/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/
chown -R nobody ./config/
chown -R nobody ./data/
chown -R nobody ./uc_client/
chown -R nobody ./uc_server/
#论坛页面:详情见链接:https://blog.csdn.net/qq_69831828/article/details/147625314?spm=1001.2014.3001.5502
http://192.168.91.100/bbs/install/index.php
最终呈现:
3、在web服务器上安装tomcat
在此我们使用脚本一键安装的方法
#!/bin/bash
#安装jdk
install_jdk () {
if [ -e jdk-8u201-linux-x64.rpm ]
then
rpm -ivh jdk-8u201-linux-x64.rpm &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\E[1;32mjdk安装成功 \E[0m"
else
echo -e "\E[1;31mjdk安装失败 \E[0m"
fi
else
echo -e "\E[1;31m无jdk包\E[0m"
fi
}
#修改环境变量
bl () {
echo "
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/lib/dt.jar
export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
}
tom () {
if [ -e apache-tomcat-9.0.16.tar.gz ]
then
tar zxvf apache-tomcat-9.0.16.tar.gz &>/dev/null
cp -r apache-tomcat-9.0.16 /usr/local/tomcat
useradd -s /sbin/nologin tomcat
chown tomcat:tomcat /usr/local/tomcat/ -R
cat > /usr/lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=Tomcat
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start tomcat
if systemctl status tomcat &>/dev/null
then
echo -e "\E[1;32m tomcat启动成功 \E[0m"
else
echo -e "\E[1;31m tomcat启动失败 \E[0m"
fi
else
echo "无tomcat 安装包"
fi
ln -s /usr/local/tomcat/bin/* /usr/bin
}
install_jdk
bl
java -version
tom
[root@localhost ~]# ls
anaconda-ks.cfg install_tomcat_.sh 模板 文档 桌面
apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm 视频 下载
initial-setup-ks.cfg 公共 图片 音乐
[root@localhost ~]# bash install_tomcat_.sh
jdk安装成功
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
tomcat启动成功
[root@localhost ~]#