apache网页优化

以下配置网页压缩到之前的源代码目录

安装有压缩功能的apache

[root@server1 ~]# tar -jxvf httpd-2.4.29.tar.bz2 
[root@server1 ~]# tar -zxvf apr-1.6.2.tar.gz
[root@server1 ~]# tar -zxvf apr-util-1.6.0.tar.gz
[root@server1 ~]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server1 ~]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

[root@server1 ~]# yum -y install gcc gcc-c++ make pcre-devel expat-devel zlib-devel perl #新增zlib-devel压缩模块

[root@server1 httpd-2.4.29]# cd httpd-2.4.29/
[root@server1 httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate #增加压缩模块
[root@server1 httpd-2.4.29]# make && make install
[root@server1 httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@server1 httpd-2.4.29]# vi /etc/init.d/httpd 
#!/bin/sh #在此行后添加(第一行)
#chkconfig: 35 85 21 #35级别自动运行 第85个启动 第21个关闭
#description: Apache is a World Wide Web server

[root@server1 ~]# chkconfig --add httpd #将httpd加入到SERVICE管理器

压缩模块配置

[root@server1 ~]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.abc.com:80 #搜索ServerName去点#更改地址
LoadModule deflate_module modules/mod_deflate.so #去掉#启用压缩模块
#末尾添加
SetOutputFilter DEELATE
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml image/png image/jpg image/jpeg application/x-httpd-php applic ation/x-javascript javascript xml
#
SetOutputFilter DEELATE #类型是DEELATE
DeflateCompressionLevel 9 #压缩比越高时间越长
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml image/png image/jpg image/jpeg application/x-httpd-php applic #压缩内容是文本格式的html plain css javascript xml文件 imag格式的png /jpeg png文件
ation/x-javascript #压缩类型是DEFLATE

[root@server1 ~]# vi /etc/hosts #添加解析地址
20.0.0.11   www.abc.com

[root@server1 init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@server1 init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# setenforce 0
[root@server1 ~]# httpd -t
Syntax OK
[root@server1 ~]# apachectl -t
Syntax OK
[root@server1 httpd-2.4.29]# systemctl restart httpd
[root@server1 ~]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN*      38149/httpd

[root@server1 httpd-2.4.29]# apachectl -D DUMP_MODULES | grep deflate #检查Apache的deflate压缩功能是否开启
 deflate_module (shared)

配置主页文件

[root@server1 htdocs]# vi /usr/local/httpd/htdocs/index.html 
<html>
<head>
<titly>花里胡哨</titly>
<body>
<h1>花里胡哨</h1>
</body><img src=001.jpg / >
</head>
</html>

访问网页若出现乱码可以打如下命令
vi /etc/httpd.conf
AddDefaultCharset utf-8

网页缓存

关闭apapche服务
[root@server1 httpd-2.4.29]# systemctl stop httpd
编译压缩模块
[root@server1 httpd-2.4.29]# cd httpd-2.4.29/
[root@server1 httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-cgid --enable-expires #enable-expires为压缩模块
[root@server1 httpd-2.4.29]# make && make install

[root@server1 httpd-2.4.29]# systemctl restart httpd 

[root@server1 httpd-2.4.29]# vi /etc/httpd.conf 
LoadModule expires_module modules/mod_expires.so #去掉#,启用expires模块
#末尾加入以下内容
<IfModule mod_expires.c>
ExpiresActive On #缓存是否开启,开On/关Off.
ExpiresDefault "access plus 60 seconds" #缓存时间,操作时间是1天所以是86400秒
</IfModule>

[root@server1 httpd-2.4.29]# apachectl -D DUMP_MODULES | grep expires
 expires_module (shared) #检查expires模块是否开启

#检查语法
[root@server1 httpd-2.4.29]# httpd -t
Syntax OK
[root@server1 httpd-2.4.29]# apachectl -t
Syntax OK

测试缓存是否生效——————

响应标头中包含了Expiresx项,说明缓存已经工作。
在这里插入图片描述

配置服务器版本信息隐藏

在这里插入图片描述

[root@server1 ~]# vi /etc/httpd.conf 
#Various default settings
Include conf/extra/httpd-default.conf #去掉注释#

[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf
#ServerTokens Full #显示包括apache支持的模块及模块版本号,改为下面的命令。
ServerTokens Prod #显示仅软件名称
ServerSignature Off #系统签名关闭,默认关闭状态

######下面是ServerTokens的一些可能的赋值:######
ServerTokens Prod显示"Server: Apache"
ServerTokens Major显示"Server: Apache/2"
ServerTokens Minor 显示"Server: Apache/2.2"
ServerTokens Min显示"Server: Apache/2.2.17"
ServerTokens OS显示"Server: Apache/2.2.17 (Unix)”
ServerTokens Full 显示"Server: Apache/2.2.17 (Unix) PHP/5.3.5"

[root@server1 ~]# systemctl restart httpd

在这里插入图片描述

彻底隐藏–在源码目录下操作

[root@server1 ~]# cd httpd-2.4.29/
[root@server1 httpd-2.4.29]# vi ./include/ap_release.h
#define AP_SERVER_BASEPRODUCT "WINDOWS" #定义提示信息,修改引号中的内容为想要的内容

[root@server1 httpd-2.4.29]# vi ./os/unix/os.h 
#ifndef PLATFORM
#define PLATFORM "WINDOWS" #定义版本信息,修改引号中的内容为想要的内容

[root@server1 httpd-2.4.29]# vi /usr/local/httpd/conf/extra/httpd-default.conf 
ServerTokens FULL #改回FULL状态

重新编译,安装apache

apache防盗链

需准备两台服务器,一台客户机

server1合法

主服务器正常编译安装apache,配置网站主页文件
在这里插入图片描述

[root@server1 htdocs]# vi /usr/local/httpd/htdocs/index.html 
<html>
<head>
<titly>花里胡哨</titly>
<body>
<h1>花里胡哨</h1>
</body><img src=001.jpg / >
</head>
</html>

访问网页若出现乱码可以打如下命令
vi /etc/httpd.conf
AddDefaultCharset utf-8

[root@server1 ~]# vi /etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so #去掉#开启rewrite功能

针对目录做防盗链处理

在htdocs目录属性最后位置新增——[NC]不区分大小写

[root@server1 ~]# vi /usr/local/httpd/conf/httpd.conf
    AllowOverride  #支持重写覆盖功能
    RewriteEngine On #开启重写功能
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.12/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.12/* [NC]
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.12$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://20.0.0.12/002.png [R,NC]
#入站匹配,只要不是访问20.0.0.12,如果访问的资源是图片,就重定向到20.0.0.12/002.png

注:HTTP标准协议中有专门的Referer字段记录,它的作用如下:
可以追溯上一个入站地址是什么。
对于资源文件,可以跟踪到包含显示他的网页地址是什么,因此所有防盗链方法都是基于这个Referer字段。

[root@server1 htdocs]# systemctl restart httpd

server2非法

简易安装apache
[root@server1 ~]# yum -y install httpd

[root@server1 ~]# vi /var/www/html/index.html
<html>
<body>盗狗滚.<img src="http://20.0.0.12/001.jpg"/></body>
</html> #链接到主服务器主页文件

[root@server1 ~]# systemctl restart httpd

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值