综合实验---Web---进阶版

news2025/2/27 1:54:39

目录

实验配置:

1.PHP调整主配置文件时,修改文件内容

1.原内容调整(在编译安装的情况下)

2.调整如下

3.没有调整的,根据之前配置就行

2.配置Nginx支持PHP解析

1.原内容如下

2.调整如下

3.验证PHP测试页

1.原内容如下

2.调整如下

4.安装论坛,下载安装包

1.原内容如下

2.调整如下

5.调整论坛权限

1.原内容如下

2.调整如下

6.论坛页面访问

第二题:

1.修改配置文件 

2.本机中添加域名 

3.为www.benet.com创建页面 

4.测试页面效果

第三题:

1.编辑配置文件

2.为防盗链功能添加图片

3.在7-2Tomcat服务器上安装httpd服务

4.当我们没有设置防盗链时

5.当我们设置完防盗链时

第四题:

1.开启7-4网关服务器的NFS

2.设置共享目录

3.去7-1挂载共享目录

4.日志分割

1.修改7-1配置文件

2.在7-1的html下创建日志脚本

3.当我们没有运行脚本时

4.当我们访问www.benet.com页面后

5.给日志定时

第五题:

1.修改7-1配置文件

2.创建被访问文件内容

 ​编辑

3.修改7-1配置文件

4.测试结果

第六题:

1.修改7-1的配置文件

2.测试结果

第七题:

解析:

1.配置网关服务器7-4

1.添加一个网卡

2.配置网卡ens36

3.配置网卡ens33

4.重启网卡并开启路由转发

2.配置外网客户机7-5

1.修改网卡

3.配置内网Nginx服务器7-1

1.修改网卡

4.配置7-4网关服务器

5.配置外网7-5客户机

1.配置hosts文件

2.在7-5中测试结果


实验配置:

7-1为内网Nginx服务器;7-2和7-3为Web服务器;7-4为网关服务器;7-5为外网客户机;

yum安装Nginx;yum安装Mysql;

编译安装PHP;编译安装

由于我们Nginx和Mysql都是yum安装,实验配置略有改动

1.PHP调整主配置文件时,修改文件内容

1.原内容调整(在编译安装的情况下)

cp /opt/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

2.调整如下

--1170行--修改
mysqli.default_socket = /var/lib/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

3.没有调整的,根据之前配置就行

2.配置Nginx支持PHP解析

1.原内容如下

vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
	root           html;   $document_root
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录
	include        fastcgi_params;
}
 

2.调整如下

vim /etc/nginx/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
	root           html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录
	include        fastcgi_params;
}



vim /etc/nginx/nginx.conf

root           html;

fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录

[root@localhost fpm]# vim /etc/nginx/nginx.conf

[root@localhost fpm]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost fpm]# nginx -s reload
nginx: [error] invalid PID number "" in "/run/nginx.pid"
[root@localhost fpm]# systemctl start nginx
[root@localhost fpm]# nginx -s reload

3.验证PHP测试页

1.原内容如下

vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
 
systemctl restart nginx.service

2.调整如下

vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
 
systemctl restart nginx.service

4.安装论坛,下载安装包

1.原内容如下

cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

2.调整如下

cd /opt/dis/dir_SC_UTF8/

cp -r upload/ /usr/share/nginx/html/bbs/

5.调整论坛权限

1.原内容如下

cd /usr/local/nginx/html/bbs/
 
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

2.调整如下

cd /usr/share/nginx/html/bbs/
 
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

6.论坛页面访问

http://192.168.91.100/bbs/index.php

或者在nginx主配置文件中加入:

index  index.html  index.htm  index.php;

 




第二题:

为nginx服务配置虚拟主机,新增两个域名 www.kgc.com 和 www.benet.com,使用http://www.kgc.com/index.php可访问上一题的Discuz论坛页面。
使用http://www.benet.com则访问/var/www/html目录中的index.html文件的内容,内容自定义。

1.修改配置文件 

 38     server {
 39         listen  80;
 40         server_name     www.benet.com;
 41         root    /var/www/html;
 42 }

 47         server_name  www.kgc.com;

2.本机中添加域名 

C:\Windows\System32\drivers\etc\hosts

3.为www.benet.com创建页面 

[root@localhost bbs]# mkdir -p /var/www/html
[root@localhost bbs]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# echo `pwd` > index.html
[root@localhost html]# cat index.html
/var/www/html

4.测试页面效果

第三题:

对基于www.benet.com域名的虚拟机主机的nginx服务调优:隐藏nginx版本号,缓存静态图片网页时间为1天,设置防盗链功能。

1.编辑配置文件

[root@localhost html]# vim /etc/nginx/nginx.conf
 18         server_tokens   off;
 19         expires 1d;

 44         location ~* \.(jpg|gif|png)$ {
 45         valid_referers none bloaced *.benet.com benet.com;
 46         if ( $invalid_referer ) {
 47         return  403;
 48 }
 49 }

2.为防盗链功能添加图片

3.在7-2Tomcat服务器上安装httpd服务

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# vim index.html
[root@localhost html]# systemctl restart httpd

<html>
<body>
<h1>this is yunjisuan</h1>
<img src="http://www.benet.com/11.jpg"/>
</body>
</html>

4.当我们没有设置防盗链时

5.当我们设置完防盗链时

第四题:

网关服务器搭建NFS服务,提供的文件系统使用LVM类型,共享目录名称为/opt/nfs;要求根据日期对Discuz论坛服务的访问日志进行日志分割,要求每天生成一份日志文件,保存到NFS服务共享的目录内

1.开启7-4网关服务器的NFS

[root@localhost ~]# systemctl start nfs
[root@localhost ~]# 
[root@localhost ~]# systemctl status nfs

2.设置共享目录

因为我们根本身就是逻辑卷;所以就不另外添加磁盘了,就在根下面做

[root@localhost ~]# mkdir /opt/nfs
[root@localhost ~]# cd /opt

[root@localhost opt]# cat /etc/exports
/opt/nfs *
[root@localhost opt]# exportfs -r
exportfs: No options for /opt/nfs *: suggest *(sync) to avoid warning
[root@localhost opt]# exportfs -v
/opt/nfs      	<world>(ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

3.去7-1挂载共享目录

[root@localhost html]# showmount -e 192.168.91.104
Export list for 192.168.91.104:
/opt/nfs *
[root@localhost html]# mount 192.168.91.104:/opt/nfs /mnt
[root@localhost html]# df

4.日志分割

1.修改7-1配置文件

vim /etc/nginx/nginx.conf
43         access_log  /opt/benet.log  main;

看一下opt下,有没有生成benet.log

2.在7-1的html下创建日志脚本

#!/bin/bash
pid=`cat /run/nginx.pid`

cd /opt
mv benet.log	/mnt/`date +%F`
touch benet.log

kill -USR1 ${pid} 

 找nginx的pid路径

3.当我们没有运行脚本时

4.当我们访问www.benet.com页面后

先运行脚本

访问页面 

 

 看日志用量是否发生改变

5.给日志定时

[root@localhost html]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost html]# 
[root@localhost html]# crontab -l
0 23 * * * /var/www/html/log.sh

第五题:

要求配置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。

1.修改7-1配置文件

要求配置location匹配请求地址http://www.kgc.com/test/XXXX,使用户访问该路径下的文件时返回/var/share/nginx/html/目录下的文件内容。

 58         location /test {
 59         alias /var/share/nginx/html;
 60 }

2.创建被访问文件内容

[root@localhost ~]# mkdir -p /var/share/nginx/html
[root@localhost ~]# 
[root@localhost ~]# echo /var/share/nginx/html > /var/share/nginx/html/index.html
[root@localhost ~]# cat /var/share/nginx/html/index.html
/var/share/nginx/html

 

3.修改7-1配置文件

要求使用rewrite将使用域名www.benet.com 请求以 .php 结尾的访问都跳转到域名www.kgc.com上,而且后面的参数保持不变,比如访问http://www.benet.com/bbs/index.php跳转到http://www.kgc.com/bbs/index.php。

 45         location ~* \.php$ {
 46         rewrite ^/(.*)     http://www.kgc.com/$1 permanent;
 47 }

4.测试结果

成功跳转

第六题:

在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat 服务器处理,并实现负载均衡

1.修改7-1的配置文件

 25     upstream tomcat {
 26         server 192.168.91.102:8080;
 27         server 192.168.91.103:8080;
 28 }

 49         location ~* \.jsp {
 50         proxy_pass http://tomcat;
 51 }

2.测试结果

第七题:

在网关服务器上设置SNAT/DNAT,使client使用网关服务器的ens36接口的IP地址访问也可实现上一题的效果。

解析:

###我们想要客户机7-5用7-4网关服务器的ens36接口IP地址(12.0.0.1)去访问www.benet.com/index.jsp,从而得到我们在  Tomcat服务器中配置的 动态页面

###所以这是外网(7-5IP:12.0.0.12)访问内网(7-1IP:192.168.91.100)

###所以我们使用的是DNAT

1.配置网关服务器7-4

1.添加一个网卡

2.配置网卡ens36

[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.1
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

3.配置网卡ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7abd6f7b-b026-4959-80e0-52bdb768b839
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.91.104
NETMASK=255.255.255.0
GATEWAY=192.168.91.104

4.重启网卡并开启路由转发

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# sysctl -a |grep ip_forward

[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p

[root@localhost network-scripts]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1

2.配置外网客户机7-5

1.修改网卡

[root@centos5 ~]# cd /etc/sysconfig/network-scripts
[root@centos5 network-scripts]# vim ifcfg-ens33
[root@centos5 network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=5c9d3e71-28e2-4af2-8d5a-a5a37195146f
DEVICE=ens33
ONBOOT=yes
IPADDR=12.0.0.12
NETMASK=255.255.255.0
GATEWAY=12.0.0.1
[root@centos5 network-scripts]# systemctl restart network

3.配置内网Nginx服务器7-1

1.修改网卡

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c1d6be33-1c8f-4836-a6ae-4e14aeca1923
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.91.100
NETMASK=255.255.255.0
GATEWAY=192.168.91.104

[root@localhost ~]# systemctl restart network

4.配置7-4网关服务器

[root@localhost network-scripts]# iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.91.100

###相当于;将内网地址(7-1:192.168.91.100)映射在公网上 (网关:12.0.0.1);让外网可以访问(7-5:12.0.0.12) 

5.配置外网7-5客户机

1.配置hosts文件

2.在7-5中测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

U盘安装Linux系统报dracut-initqueue错误,解决方案

U盘安装Linux系统报dracut-initqueue错误&#xff0c;是因为系统所在U盘路径不对&#xff0c;需要修改 解决方法&#xff1a; dracut:/# cd dev >dracut:/# ls |grep sdb 查看你的u盘是哪个一般是sdbX,X是一个数字&#xff0c;也有可能是sda等&#xff0c;如果上边都不对…

C语言数据结构基础——二叉树学习笔记(二)topk问题

1.top-k问题 1.1思路分析 TOP-K 问题&#xff1a;即求数据结合中前 K 个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大 。 比如&#xff1a;专业前 10 名、世界 500 强、富豪榜、游戏中前 100 的活跃玩家等。 对于 Top-K 问题&#xff0c;能想到的最简单直…

词令微信小程序怎么添加到我的小程序?

微信小程序怎么添加到我的小程序&#xff1f; 1、找到并打开要添加的小程序&#xff1b; 2、打开小程序后&#xff0c;点击右上角的「…」 3、点击后底部弹窗更多选项&#xff0c;请找到并点击「添加到我的小程序」&#xff1b; 4、添加成功后&#xff0c;就可以在首页下拉我的…

代码随想录算法训练营第二十七天 |131.分割回文串,一些思考

实际上&#xff0c;分割子集问题也是组合问题 &#xff08;图源代码随想录网站&#xff09; 一个套路&#xff0c;也就是说&#xff0c;每次递归函数参数列表传入start的时候&#xff0c;选中的元素相当于是在最后面划了一条分割线 回文子串的判断剪枝操作就很简单了&#xf…

AIGC元年大模型发展现状手册

零、AIGC大模型概览 AIGC大模型在人工智能领域取得了重大突破&#xff0c;涵盖了LLM大模型、多模态大模型、图像生成大模型以及视频生成大模型等四种类型。这些模型不仅拓宽了人工智能的应用范围&#xff0c;也提升了其处理复杂任务的能力。a.) LLM大模型通过深度学习和自然语…

什么是闭包?闭包的优缺点?闭包的应用场景?

什么是闭包&#xff1f; 闭包是指有权访问另外一个函数作用域中的变量的函数。 闭包形成的必要条件&#xff1a; 函数嵌套内部函数使用外部函数的变量内部函数作为返回值 举个栗子&#xff1a;实现每隔1s递增打印数字 使用闭包实现 for(var i1; i<5; i) {(function(i) {se…

Cointelegraph 策略主管 JASON CHOI确认出席Hack.Summit() 2024区块链开发者大会

随着区块链技术的蓬勃发展和广泛应用&#xff0c;一场备受瞩目的盛会即将拉开帷幕。Hack.Summit() 2024区块链开发者大会&#xff0c;由Hack VC主办&#xff0c;AltLayer和Berachain协办&#xff0c;Solana、The Graph、Blockchain Academy、ScalingX、0G、SNZ和数码港等机构的…

Python——模块

自定义模块 module_exercise.py文件 data 100 def func01():print("func01执行喽") class Myclass:def func02(self):print("func02执行喽")classmethoddef func03(cls):print("func03执行喽") exercise.py文件 # 调用方法1&#xff1a;&quo…

Unity2D实现鼠标拖动物体移动(简单好抄)

1.新建脚本&#xff0c;并将脚本拖到你想要拖动的物体上即可 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;public class text : MonoBehaviour {private Vector3 offset;public int x 1;void OnMouseDown(…

入门:vue使用Echarts绘制地图的步骤

匠心接单中...8年前端开发和UI设计接单经验&#xff0c;完工项目1000&#xff0c;持续为友友们分享有价值、有见地的干货观点&#xff0c;有业务需求的老铁&#xff0c;欢迎关注发私信。 安装echarts和echarts-map插件 npm install echarts --save npm install echarts-map --…

深入理解mysql 从入门到精通

1. MySQL结构 由下图可得MySQL的体系构架划分为&#xff1a;1.网络接入层 2.服务层 3.存储引擎层 4.文件系统层 1.网络接入层 提供了应用程序接入MySQL服务的接口。客户端与服务端建立连接&#xff0c;客户端发送SQL到服务端&#xff0c;Java中通过JDBC来实现连接数据库。 …

YOLOV5 部署:基于web网页的目标检测(本地、云端均可)

1、前言 YOLOV5推理的代码很复杂,大多数都是要通过命令行传入参数进行推理,不仅麻烦而且小白不便使用。 本章介绍的web推理,仅仅需要十几行代码就能实现本地推理,并且只需要更改单个参数就可以很方便的部署云端,外网也可以随时的使用 之前文章介绍了QT的可视化推理界面,…

代码随想录day25(2)二叉树:验证二叉搜索树(leetcode98)

题目要求&#xff1a;给定一个二叉树&#xff0c;判断其是否是一个有效的二叉搜索树。 思路&#xff1a;首先对于二叉搜索树&#xff0c;它的中序遍历是有序的。最简单的想法就是将二叉搜索树转成一个数组&#xff0c;验证数组是否有序就可以&#xff08;二叉搜索树中没有重复…

ResNet模型结构

一、ResNet网路模型 ResNet模型由堆叠残差结构所得到 ResNet34 实线和虚线的残差结构不同&#xff1a; 虚线是conv2_x&#xff0c;conv3_x&#xff0c;conv4_x&#xff0c;conv4_x&#xff0c;第一层的残差结构。要将上一层的残差特征矩阵的尺寸和深度调整为当前层所需要的 二…

Aigtek超声功率放大器产品介绍

超声功率放大器是一种特殊类型的功率放大器&#xff0c;专门用于增强和放大超声信号的功率。它在医疗、工业和科学领域中得到广泛应用。 一、超声功率放大器的基本概述 超声功率放大器是一种能够将低功率超声信号放大到更高功率水平的设备。它是超声系统的关键组成部分&#xf…

OPPO 后端二面,凉凉。。。

美众议院通过 TikTok 法案 之前我们讲了 老美要求字节跳动在 165 天内剥离短视频应用 TikTok&#xff0c;当时的最新进度是 TikTok 给 1.7 亿美国用户发弹窗&#xff0c;发动用户群众给国会打电话进行抗议。 但显然这点力度的抗议并不会造成什么实质影响。 昨晚&#xff0c;美国…

门店运营三大核心揭秘:打造高效盈利模式的关键

在当今竞争激烈的商业环境中&#xff0c;开设一家成功的实体店并非易事。对于那些渴望投身实体店创业或已经在创业道路上的人来说&#xff0c;了解如何打造高效盈利模式是至关重要的。作为一名经营鲜奶吧5年时间的创业者&#xff0c;我将持续在网上分享开店的干货和见解&#x…

MySQL最实用面试题(2024-3-14持续更新中)

MySQL篇面试题 一、介绍 ​ 这是由小龙同学自己总结领悟的mysql面试题的解析&#xff0c;也是面试宝典 二、题目 1.数据库三大范式&#xff1a; –作用&#xff1a; ​ 使表结构清晰&#xff0c;减少数据冗余&#xff08;简单讲就是重复&#xff09;&#xff0c;提高查询…

Kafka:分布式消息队列

1. 简介 介绍 Kafka 的概述、优势和劣势&#xff0c;以及应用场景。 2. 基本概念 2.1 架构 一个典型的 Kafka 体系架构包括若干 Producer、若干Broker、若干 Consumer&#xff0c;以及一个ZooKeeper集群。 ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的…

基于Spring Boot的社区便民服务管理系统的设计与实现

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一…