Apache是一个跨平台的web服务器,因为其简单高效、稳定安全的特性,被普遍应用于计算机技术的各个领域。如今,Apache凭借其庞大的用户数,已成为用户数排名第一的web服务器。
javascript
尽管如此,在实际的生产环境中,咱们仍然不可能直接使用默认配置的Apache来充当服务器。毕竟,为了更充分合理地利用Apache服务器,咱们都应该根 据本身的实际须要对Apache的默认配置做出一些必要的调整。css
须要编译Apache添加优化模块(安装详细操做)html
# cd /opt/httpd-2.4.2 # ./configure \ --prefix=/usr/local/httpd \ //安装目录 --enable-deflate \ //压缩模板 --enable-expires \ //支持 HTTP 控制 --enable-so \ //让apache核心装载DSO --enable-rewrite \ //启用重写功能 --enable-charset-lite \ //启动字符集支持 --enable-cgi //启用CGI脚本程序支持,便于扩展网站的应用访问能力 # make && make install
网页压缩( 网页加载速度加快 节省流量)java
Gzip是一种流行的文件压缩算法,如今的应用十分普遍,尤为是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是很是明显的,大约能够减小70%以上的文件大小。这取决于文件中的内容。 利用Apache中的Gzip模块,咱们可使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样通过压缩后实际上下降了网络传输的字节数,最明显的好处就是能够加快网页加载的速度。web
# vim /etc/httpd.conf 打开Apache主配置文件 去掉下面三行前面 # LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so LoadModule filter_module modules/mod_filter.so ........................................ 在Apache主配置文件末尾添加 <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript DeflateCompressionLevel 9 SetOutputFilter DEFLATE </IfModule> 注解: <IfModule mod_deflate.c> 对html、plain、css、xml、javacript内容启用gzip压缩 是指压缩程度的等级,从1到9,9是最高等级,级别越高,压缩越小 对上面设置的全部 输出启用压缩 </IfModule>
验证语法和模块算法
# cd /usr/local/httpd/bin # ./apachectl -t Syntax OK //验证配置文件成功 # ./apachectl -t -D DUMP_MODULES | grep "deflate" deflate_module (shared) # systemctl restart httpd //重启服务
网页缓存是将一部分常常不会改变或变更不多的页面缓存,下次浏览器再次访问这些页面时,不须要再次去下载这些页面,从而提升了用户的访问速度apache
# vim /etc/httpd.conf Apache主配置开启模块(去#号) LoadModule expires_module modules/mod_expires.so 配置文件末尾添加 <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 50 seconds" #缓存为50秒 </IfModule>
验证语法和模块vim
# cd /usr/local/httpd/bin # ./apachectl -t Syntax OK //验证配置文件成功 # ./apachectl -t -D DUMP_MODULES | grep "expires" expires_module (shared) # systemctl restart httpd //重启服务
Apache安全优化
浏览器
隐藏版本能够减小被攻JI的风险,保护服务器安全运行。缓存
# vim /etc/httpd.conf (去掉下面配置行的#) Include conf/extra/httpd-default.conf # vim /usr/local/httpd/conf/extra/httpd-default.conf ServerTokens Prod //修改为Prod 只显示名称,没有版本 ServerSignature Off # systemctl restart httpd //重启服务
如今不少长站都是直接使用其它网站上的资源,若是你网站带宽性能很差,很容易给这类网站把流量费光了,下面我来介绍在Apache环境防盗链配置方法,这他们没法直接使用你网站资源哦。
主配置文件修改
# vim /etc/httpd.conf LoadModule rewrite_module modules/mod_rewrite.so //去掉#号 开启 ................................... <Directory "/usr/local/httpd/htdocs"> Options Indexes FollowSymLinks //215行添加 AllowOverride None Require all granted RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://benet.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://benet.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.benet.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.benet.com/$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/error.png [R,NC,L] #设置规则 盗用gif jpg swf 结尾的文件时 跳转盗链的替代图片:(error.png图片放在站点目录下) .........省略n行 </Directory> (.*$:以任意字符结尾 NC:不区分大写 R:强制跳转)
测试
# vim /usr/local/httpd/htdocs/index.html //编辑默认首页 <html> <body> <h1>It works!</h1> <img src='test.jpg' /> //添加测试图片 </body> </html>
编辑一个盗链网页
# vim /usr/local/httpd/htdocs/index.html //编辑盗链的首页 <html> <body> <h1>It works!</h1> <img src='http://www.bt.com/test.jpg'/>; //注意使用目标的图片地址 </body>
能够看到跳转到 站点里恶 error.png 图片了