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

目录

实验配置:

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中测试结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ethsign银河活动开启,简单参与领6个NFT

简介&#xff1a;EthSign是一个基于区块链技术的去中心化电子签名平台&#xff0c;目的是解决传统中心化电子签名服务的各种问题。用户可以使用钱包或社交媒体帐户生成的私钥签署文件和协议&#xff0c;数字签名记录在链上&#xff0c;文件经过加密存储在去中心化存储网络中&am…

51-31 CVPR’24 | VastGaussian,3D高斯大型场景重建

2024 年 2 月&#xff0c;清华大学、华为和中科院联合发布的 VastGaussian 模型&#xff0c;实现了基于 3D Gaussian Splatting 进行大型场景高保真重建和实时渲染。 Abstract 现有基于NeRF大型场景重建方法&#xff0c;往往在视觉质量和渲染速度方面存在局限性。虽然最近 3D…

OSPF特殊区域(stub\nssa)

stub区域——只有1类、2类、3类&#xff1b;完全stub区域——只有1类、2类 NSSA区域&#xff1a;本区域将自己引入的外部路由发布给其他区域&#xff0c;但不需要接收其他区域的路由 在NSSA区域的路由器上&#xff0c;引入外部路由时&#xff0c;不会转换成5类LSA&#xff0c…

【保姆级教程】如何拥有GPT?(Proton邮箱版)

OnlyFans 订阅教程移步&#xff1a;【保姆级】2024年最新Onlyfans订阅教程 Midjourney 订阅教程移步&#xff1a; 【一看就会】五分钟完成MidJourney订阅 GPT-4.0 升级教程移步&#xff1a;五分钟开通GPT4.0 如果你需要使用Wildcard开通GPT4、Midjourney或是Onlyfans的话&am…

故障诊断 | 一文解决,RBF径向基神经网络的故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述

【暑期实习记录】腾讯oc

部门&#xff1a;实习基地 - 无意向 - csig腾讯云捞 TimeLine 3.3 压线投递实习基地 3.6 一面 主要深问项目&#xff0c;包括设计、困难点、亮点、迭代过程、对比、测试和部署等&#xff0c;然后问了一些相关的八股&#xff0c;一道简单sql和简单算法 之后反问面试官他对应…

操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记&#xff0c;未经本人许可&#xff0c;请勿转载&#xff0c;如发现本笔记内容的错误还望各位不吝赐教&#xff08;笔记内容可能有误怕产生错误引导&#xff09;。 本章的主要内容见下图&#xff1a; 1、操作系统的作用…

【ACL 2023获奖论文】再现奖:Do CoNLL-2003 Named Entity Taggers Still Work Well in 2023?

【ACL 2023获奖论文】再现奖&#xff1a;Do CoNLL-2003 Named Entity Taggers Still Work Well in 2023? 写在最前面动机主要发现和观点总结 正文1引言6 相关工作解读 2 注释一个新的测试集以度量泛化CoNLL数据集的创建数据集统计注释质量与评估者间协议目标与意义 3 实验装置…

Keil笔记(缘更)

Keil 一、使用Keil时可能会出现的问题1.Project框不见了2.添加文件时找不到3.交换文件位置4.main.c测试报1 warning5.搜索CtrlF 二、STLINK点灯操作1.配置寄存器进行点灯2.使用库函数进行点灯 3.GPIO1.LED闪烁4.按键控制LED 注&#xff1a; 一、使用Keil时可能会出现的问题 1.…

SpringBoot中使用验证码easy-captcha

easy-captcha使用的大概逻辑: 当一个请求发送到后端服务器请求验证,服务器使用easy-captcha生成一个验证码图片,并通过session将验证信息保存在服务器,当用户登录校验时候,会从ession中取出对比是否一致 但是前后端分离之后 由于跨域问题 以上就无法实现了 下面这种情况没…

带你深度吃透Vue3 中计算属性 computed() 的使用

文章目录 导语&#xff1a;概念案例计算属性缓存机制计算属性调试computed() 标注类型扩展性能优化 前情摘要&#xff1a; 本文是在基于 Vue3 的&#xff1a;v3.4.21 版本基础上进行整理的。后续官方如有版本更新有关 计算属性 (computed) 的新特性欢迎留言讨论。 导语&#xf…

文献阅读(213)MCM Allreduce

题目&#xff1a;Enhancing Collective Communication in MCM Accelerators for Deep Learning Training会议&#xff1a;HPCA时间&#xff1a;2024研究机构&#xff1a;德州农工 本篇论文的主要贡献&#xff1a; 我们提出了两种新的基于网格的MCM加速器的AllReduce算法 Ring…

Redis中文乱码问题

最近排查问题&#xff0c;发现之前的开发将日志写在redis缓存中&#xff08;不建议这样做&#xff09;&#xff0c;我在查看日志的时候发现没办法阅读&#xff0c;详细是这样的&#xff1a; 查阅资料后发现是进制问题&#xff0c;解决方法是启动客户端的时候将redis-cli改为red…

IDEA Git恢复DropCommit删除的提交

刚刚Dorp commit了&#xff0c;本地代码也被删除了&#xff0c;如何恢复呢&#xff0c; 从项目中登录git&#xff0c;找到刚刚的commit代码&#xff0c;如下所示&#xff1a;输入命令git reflog 复制代码&#xff0c;到idea中&#xff0c;打开GIt&#xff0c;找到RESET HEAD, …

Lightroom Classic 2024 for mac 中文激活:强大的图像后期处理软件

对于追求极致画面效果的摄影师来说&#xff0c;Lightroom Classic 2024无疑是Mac平台上的一款必备软件。它凭借其强大的功能和出色的性能&#xff0c;赢得了众多摄影师的青睐。 软件下载&#xff1a;Lightroom Classic 2024 for mac 中文激活版下载 在Lightroom Classic 2024中…

浅谈游戏地图中位置实时更新的技术方案

地图如今在游戏中发挥的作用越来越重要&#xff0c;随着电子竞技的兴起&#xff0c;地图逐渐成为了为玩家创造体验的直接舞台。希望本文能对有兴趣了解游戏地图背后实现原理的同学一些帮助。 什么是游戏地图 在游戏中可以通过3D场景虚拟一个完整的世界&#xff0c;当3D场景较为…

综合练习(python)

前言 有了前面的知识积累&#xff0c;我们这里做两个小练习&#xff0c;都要灵活运用前面的知识。 First 需求 根据美国/英国各自YouTube的数据&#xff0c;绘制出各自的评论数量的直方图 第一版 import numpy as np from matplotlib import pyplot as plt import matplo…

25.6 MySQL 子查询

1. 子查询 子查询(Subquery): 是SQL查询语句中的一个重要概念, 它允许在一个查询语句(主查询)中嵌套另一个查询语句(子查询). 这意味着一个查询可以作为另一个查询的输入或条件, 子查询可以出现在SQL语句的多个位置, 例如SELECT, FROM, WHERE等子句中.子查询通常用于以下几种情…

AMPQ和rabbitMQ

RabbitMQ 的 Channel、Connection、Queue 和 Exchange 都是按照 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;标准实现的。 AMPQ的网络部分 AMQP没有使用HTTP&#xff0c;使用TCP自己实现了应用层协议。 AMQP实现了自己特有的网络帧格式。 一个Connection…

Pyro —— SOP Nodes

Volume Rasterize Attributes —— 采样点属性以创建对应VDB 根据输入点属性&#xff0c;创建对应的VDB&#xff1b;是Volume Rasterize Particles节点的封装&#xff1b;