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