柚皮apache http serve已停止工作_【零基础学云计算】详述Linux系统中Apache网页与安全优化(二)...

c5f4adbde79620baa7d1e4f1ebe42ed3.png

网页缓存

配置网页的缓存时间

  • 通过mod_ expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
  • 启用mod_ expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的

启用网页缓存功能步骤

  • 查看是否安装mod_ expire模块
  • 修改配置文件启用缓存功能
  • 抓包测试

查看是否安装了mod_ expire模块

  • /usr/local/apache/bin/apachectl -t -D DUMP_MODULES
  • 如果输出中没有expires_module (static), 则说明编译时没有安装mod_expires

如果没有安装则要重新编译安装

  • ./configure --enable-expires...
  • make && make install

修改httpd.conf配置文件

  • 启用mod_ expires模块, 并设置http协议下任意格式的文档均60秒后过期

<lfModule mod_expires.c>

ExpiresActive On

ExpiresDefault "access plus 60 seconds"

</lfModule>

重启httpd服务

再次访问测试网站,使用抓包工具Fiddler进行数据抓取分析

配置实例

  • 在此处我将接着上一篇实验继续做,在上一篇实验中,手工编译安装Apache服务时已经安装过expires模块,这里我直接测试

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

...//省略部分内容...

#LoadModule logio_module modules/mod_logio.so

LoadModule env_module modules/mod_env.so

LoadModule expires_module modules/mod_expires.so //找到此模块,去掉#开启模块

LoadModule headers_module modules/mod_headers.so

#LoadModule unique_id_module modules/mod_unique_id.so

...//省略部分内容...

<IfModule mod_expires.c> //在文件末尾处添加以下条目,对expires模块进行配置

ExpiresActive On //开启功能

ExpiresDefault" access plus 50 seconds" //设置缓存时间

</IfModule>

:wq //保存退出

[root@localhost ~]# apachectl -t //验证语法格式

Syntax OK //语法正常

[root@localhost ~]# service httpd stop //停止HTTP服务

[root@localhost ~]# service httpd start //启动HTTP服务

[root@localhost ~]# /usr/local/httpd/bin/apachectl -t -D DUMP_MODULES |grep "expires"

//检测模块是否开启

expires_module (shared) //成功开启

[root@localhost ~]# netstat -ntap | grep 80 //查看端口是否开启

tcp 0 0 192.168.144.133:80 0.0.0.0:* LISTEN 47752/httpd

  • 在客户机中访问网页,使用抓包工具看缓存模块是否开启

bb97c6f7c4c8eb9da3a89eb7c61d22cf.png

4c159b2ca1f7cade69e91e7287f43447.png

Apache安全优化

配置防盗链

  • 防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源
  • 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
  • 所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用

配置Apache实现防盗链

  • 检查Apache是否安装了mod_rewrite模块

/usr/local/apache/bin/apachectl -t -D DUMP_ MODULES

如果输出中没有rewrite_module (static), 则说明编译时没有安装mod_ rewrite模块

  • 如果没有安装则要重新编译安装

./configure --enable-rewrite...

make && make install

配置规则变量说明

  • %{HTTP_ REFERER}: 浏览header中的链接字段,存放一-个链接的URL,代表是从哪个链接访问所需的网页
  • !^:不以后面的字符串开头
  • .*$: 以任意字符结尾
  • NC:不区分大写
  • R:强制跳转

规则匹配说明

  • RewriteEngine On: 打开网页重写功能
  • RewriteCond: 设置匹配规则
  • RewriteRule: 设置跳转动作

规则匹配

  • 如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配

配置操作演示

  • 修改配置文件启用防盗链功能并设置规则:

RewriteEngine On

RewriteCond %{HTTP_ REFERER} !^http://test.com/.*$ [NC]*

RewriteCond %{HTTP_ REFERER} !^http://test.com$ [NC]

RewriteCond %{HTTP_ REFERER} !^http://www.test.com/.*$ [NC]*

RewriteCond %{HTTP_ REFERER} !^http://www.test.com$ [NC]

RewriteRule .*.(gifljipg|swf)$ http://www.test.com/error.html [R,NC]

配置实例

  • 首先安装DNS服务,并配置DNS服务,我们这里是同域名访问网页;在前面手工编译安装Apache服务时已经安装过放掉连模块插件mod_rewrite,直接进入HTTP主著配置文件进行配置。

[root@localhost ~]# yum install bind -y

已加载插件:fastestmirror, langpacks

base | 3.6 kB 00:00

extras | 2.9 kB 00:00

...//省略部分内容...

已安装:

bind.x86_64 32:9.11.4-9.P2.el7

作为依赖被安装:

bind-export-libs.x86_64 32:9.11.4-9.P2.el7

作为依赖被升级:

bind-libs.x86_64 32:9.11.4-9.P2.el7

bind-libs-lite.x86_64 32:9.11.4-9.P2.el7

bind-license.noarch 32:9.11.4-9.P2.el7

bind-utils.x86_64 32:9.11.4-9.P2.el7

dhclient.x86_64 12:4.2.5-77.el7.centos

dhcp-common.x86_64 12:4.2.5-77.el7.centos

dhcp-libs.x86_64 12:4.2.5-77.el7.centos

完毕!

[root@localhost ~]# vim /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";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; };

...//省略部分内容...

:wq

[root@localhost ~]# vim /etc/named.rfc1912.zones

...//省略部分内容...

zone "kgc.com" IN {

type master;

file "kgc.com.zone";

allow-update { none; };

};

...//省略部分内容...

:wq

[root@localhost ~]# cd /var/named/

[root@localhost named]# ls

data dynamic named.ca named.empty named.localhost named.loopback slaves

[root@localhost named]# cp -p named.localhost kgc.com.zone

[root@localhost named]# vim kgc.com.zone

$TTL 1D

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @

A 127.0.0.1

www IN A 192.168.144.133

[root@localhost named]# systemctl start named //启动DNS服务

  • 这里我们先不开启盗链功能,现在客户机中访问网页图片,然后在开启一台win 7客户机,安装http服务,盗链图片,看是否可以盗链

58e17d443a8cd9e9a3972828ab71815a.png

3bc13a471e91332ffcfc17bb76efba97.png

a6153af4860338c9f73ef3e7210d2e10.png

a7f019fb55f77df0d23989cb7648b563.png

fbd5b2c0f4a7783343f19842a7f969d8.png

563ef875b389b22c96fd77af82561765.png

acf21b6e7f13e5b17d786e598ea9a7e6.png

3cff98478c87c83fef7545d177e4d167.png

abcfba2cadda470c673e41f345b43751.png

e405e3063d4165d230f3cc46292d85cb.png

9aa00b677697b28612f9c5f7464a0336.png
  • 在Linux系统中配置防盗链模块

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf //编辑主配置文件

...//省略部分内容...

#LoadModule userdir_module modules/mod_userdir.so

LoadModule alias_module modules/mod_alias.so

LoadModule rewrite_module modules/mod_rewrite.so //找到此条,并开启此条目

<IfModule unixd_module>

#

# If you wish httpd to run as a different user or group, you must run

...//省略部分内容...

<Directory "/usr/local/httpd/htdocs"> //在此标签下添加防盗链条目

#

# Possible values for the Options directive are "None", "All",

# or any combination of:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesn't give it to you.

#

# The Options directive is both complicated and important. Please see

# Apache HTTP Server Version 2.4

# for more information.

#

Options Indexes FollowSymLinks

#

# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# AllowOverride FileInfo AuthConfig Limit

#

AllowOverride None

#

# Controls who can get stuff from this server.

#

Require all granted

RewriteEngine On //开启防盗链功能

RewriteCond %{HTTP_REFERER} !^http://kgc.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http:// www.kgc.com/$ [NC]

RewriteRule .*.(gif|jpg|swf)$ http://www.kgc.com/error.png

</Directory>

...//省略部分内容...

:wq

[root@localhost ~]# cd /mnt //进入挂载目录

[root@localhost mnt]# ls //查看是否有准备好的防盗链图片

apr-1.6.2.tar.gz cronolog-1.6.2-14.el7.x86_64.rpm httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz

apr-util-1.6.0.tar.gz Discuz_X2.5_SC_UTF8.zip LAMP-php5.6.txt nginx-1.12.0.tar.gz

awstats-7.6.tar.gz error.png miao.jpg php-5.6.11.tar.bz2

[root@localhost mnt]# cp error.png /usr/local/httpd/htdocs/ //将防盗链图片复制入http站点目录

[root@localhost mnt]# cd /usr/local/httpd/htdocs/ //进入站点目录

[root@localhost htdocs]# ls //查看

error.png index.html miao.jpg //成功复制

[root@localhost htdocs]# systemctl start httpd //重启网络服务

  • 再次在客户机中访问网页,看防盗链功能是否开启

6c09fb47ca2d78df4d1c2b50837290ee.png

隐藏版本信息

Apache隐藏版本信息

  • Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
  • 生产环境中要配置Apache隐藏版本信息
  • 可使用Fiddler抓包工具分析

配置Apache隐藏版本信息

  • 将主配置文件httpd.conf以下行注释去掉

#Include conf/extra/httpd-default.conf

  • 修改httpd-default.conf文件两个地方
  • ServerTokens Full修改为Server Tokens Prod
  • 将ServersSignature On修改为ServersSignature Off

重启httpd服务,访问网站,抓包测试

配置实例

  • 现在客户机中使用抓包工具,看看是否会显示版本信息

fad529dcdde825bea09e44fa5751389b.png
  • 进入HTTP配置文件,更改信息

[root@localhost htdocs]# vim /usr/local/httpd/conf/httpd.conf

...//省略部分内容...

#Include conf/extra/httpd-dav.conf

# Various default settings

Include conf/extra/httpd-default.conf //找到此条目,并去掉注释

# Configure mod_proxy_html to understand HTML4/XHTML1

<IfModule proxy_html_module>

Include conf/extra/proxy-html.conf

</IfModule>

...//省略部分内容...

:wq //保存退出

[root@localhost htdocs]# cd /usr/local/httpd/conf/extra/ //进入目录

[root@localhost extra]# ls

httpd-autoindex.conf httpd-info.conf httpd-mpm.conf httpd-userdir.conf

httpd-dav.conf httpd-languages.conf httpd-multilang-errordoc.conf httpd-vhosts.conf

httpd-default.conf httpd-manual.conf httpd-ssl.conf proxy-html.conf

[root@localhost extra]# vim httpd-default.conf //编辑配置文件

...//省略部分内容...

# Set to one of: Full | OS | Minor | Minimal | Major | Prod

# where Full conveys the most information, and Prod the least.

#

ServerTokens Prod //找到此条目,并更改Full为Prod

#

# Optionally add a line containing the server version and virtual host

# name to server-generated pages (internal error documents, FTP directory

# listings, mod_status and mod_info output etc., but not CGI generated

# documents or custom error documents).

# Set to "EMail" to also include a mailto: link to the ServerAdmin.

# Set to one of: On | Off | EMail

#

ServerSignature Off //并确定此处是否为关闭,默认为关闭

#

# HostnameLookups: Log the names of clients or just their IP addresses

# e.g., Welcome to The Apache Software Foundation! (on) or 204.62.129.132 (off).

:wq //保存退出

[root@localhost extra]# systemctl restart httpd.service //重启服务

再次在客户机中测试抓包,看是否还显示版本信息

869f5ff7e7e55244800dec033b23a1dc.png

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
红绿灯目标检测是计算机视觉的一个重要研究领域,它主要应用于交通场景的自动驾驶、交通流量监控等领域。本文将介绍红绿灯目标检测的研究现状和个人研究进展。 一、红绿灯目标检测的研究现状 红绿灯目标检测主要分为两类方法:传统方法和深度习方法。 传统方法主要基于计算机视觉的图像处理、特征提取和分类器等技术,常用的特征包括颜色、形状、纹理等。传统方法的优点是速度快、可解释性强,但其准确度受到传统算法的限制,难以处理复杂的场景。 深度习方法主要基于卷积神经网络(CNN)等深度习技术,通过习大量的数据来提高检测准确度。深度习方法的优点是准确度高、可扩展性强,但其缺点是需要大量的数据和计算资源。 目前,深度习方法在红绿灯目标检测领域已经取得了很大的进展。常用的深度习模型包括 Faster R-CNN、YOLO、SSD 等。这些模型通过不断地优化网络结构和损失函数,不断提高检测准确度。 、个人研究进展 个人在红绿灯目标检测方面的研究主要基于深度习方法。我使用了 TensorFlow 框架搭建了一个基于 Faster R-CNN 的红绿灯目标检测模型,通过对数据集进行训练和测试,取得了不错的效果。 具体来说,我使用了一个由 VGG16 和 Faster R-CNN 组合的模型,使用了 PASCAL VOC 数据集进行训练,通过计算 mAP 指标来评估模型的性能。实验结果表明,该模型在红绿灯目标检测方面的检测准确率达到了 90% 左右。 此外,我还将该模型应用于实际的交通场景进行测试,结果表明该模型在实际场景的检测效果也比较好。 三、总结 红绿灯目标检测是计算机视觉的一个重要研究领域,目前主要应用于交通场景的自动驾驶、交通流量监控等领域。深度习方法已经成为该领域的主流方法,通过不断地优化网络结构和损失函数,取得了不断提高的检测准确度。个人在该领域的研究主要基于深度习方法,已经取得了一定的进展,但仍然需要进一步深入研究和优化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值