Apache網頁優化與安全優化

F靚仔發表於2020-11-27

一、Apache網頁優化

1.Apache網頁優化概述

在企業中,部署Apache後只能採用預設的配置引數,會引發網站很多的 問題,換言之預設配置是針對以前較低的伺服器配置,以前的配置以及不適用現在的網際網路時代了。

2.優化內容

  • 配置網頁壓縮功能
  • 配置網頁快取
  • 工作模式的選擇與引數優化
  • 配置隱藏版本號
  • 配置防盜鏈

3.網頁壓縮

3.1 gzip介紹

  • 配置Apache的網頁壓縮功能,是使用gzip壓縮演算法來對網頁內容進行壓縮後再傳輸到客戶端瀏覽器

3.2 作用

  • 降低了網路傳輸的位元組數,加快網頁載入的速度
  • 節省流量,改善使用者的瀏覽體驗
  • gzip與搜尋引擎的抓取工具有著更好的關係
    3.3 Apache實現網頁壓縮的功能模組包括
  • mod_gzip模組
  • mod deflate模組

Apache 1.x

  • 沒有內建網頁壓縮技術,但可使用第三方mod_gzip模組執行壓縮

Apache 2.x

  • 在開發的時候,內建了mod_deflate這個模組,取代mod_gzip

3.4 mod_gzip模組與mod_deflate模組

  • 兩者均使用gzip壓縮演算法,運作原理類似
  • mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高
  • mod_gzip對伺服器CPU的佔用要高一些
  • 高流量的伺服器,使用mod_deflate可能會比mod_gzip載入速度更快

4、配置網頁壓縮功能

注:前面就是正常編譯安裝Apache步驟,但yum多安裝zlib-devel(壓縮功能);configure配置中多開啟一個deflate模組,比之前安裝的Apache環境多了個 壓縮功能
1.安裝Apache

tar zxf apr-1.6.2.tar.gz
tar zxf apr-util-1.6.0.tar.gz
tar jxf httpd-2.4.29.tar.bz2

mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl zlib-devel

cd httpd-2.4.29/

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate


make  &&   make install 

 cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
 vim /etc/init.d/httpd
新增: 
#chkconfig:35 85 21
#description:Apache HTTP Server

chkconfig --add httpd
chkconfig --list
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/bin/


vi  /etc/httpd.conf
修改:
      ServerName  www.nb.com:80

systemctl stop firewalld
setenforce 0

在這裡插入圖片描述
2.配置mod_deflate模組啟動

[root@server1 ~]# vi /etc/httpd.conf 

LoadModule deflate_module/mod_deflate.so     #把前面的#刪掉,啟用mod_deflate模組

在這裡插入圖片描述

[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl status httpd
[root@server1 ~]# netstat -anpt | grep httpd   
[root@server1 ~]# apachectl -D DUMP_MODULES | grep deflate

在這裡插入圖片描述
壓縮功能已開啟

5、配置網頁壓縮

1.設定壓縮內容型別

[root@server1 ~]# vi /etc/httpd.conf    
#............#在檔案末尾加入以下內容
#AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
#DeflateCompressionLevel 9      #9代表壓縮等級一般用6即可
#SetOutputFilter DEFLATE    text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# httpd -t

在這裡插入圖片描述
2.網頁設定

[root@server1 ~]# echo "<h1>This is the fa</h1>" > /usr/local/httpd/htdocs/index.html 

抓包測試:
在瀏覽器上輸入IP訪問
在這裡插入圖片描述
使用抓包軟體進行檢視
在這裡插入圖片描述

6、配置網頁快取功能

1.啟用網頁快取功能步驟

  • 檢視是否安裝mod_expire模組
  • 修改配置檔案,啟用快取功能
  • 訪問測試

解決中文亂碼的問題

vi /etc/httpd.conf
新增:
    AddDefaultCharset utf-8

1.開啟expire模組

[root@server1 ~]# vi /etc/httpd.conf 
去除#號,開啟expire模組
LoadModule expires_module modules/mod_expires.so
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# apachectl -D DUMP_MODULES | grep expires

在這裡插入圖片描述

2.設定配置檔案

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# httpd -t
[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd

<IfModule mod_expires.c>   當expire模組開啟時,命令生效
         ExpiresActive On
         ExpiresDefault "access plus 3 day"   快取3</IfModule>

在這裡插入圖片描述

測試:
本機上輸入:20.0.0.13訪問,然後抓包
在這裡插入圖片描述

二、Apache安全優化

1. 配置Apache隱藏版本資訊

  • Apache的版本資訊,透露了一定的漏洞資訊,從而給網站帶來安全隱患
  • 生產環境中要配置Apache隱藏版本資訊

2.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”其它平臺所有資訊(apache嵌存PHP模組)

3.隱藏版本配置

[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf 
修改為:
     ServerTokens Prod

在這裡插入圖片描述
2.配置檔案

  [root@server1 ~]# vi /etc/httpd.conf 
  修改:
    Include conf/extra/httpd-default.conf        #取消註釋
  [root@server1 ~]# systemctl stop httpd
  [root@server1 ~]# systemctl start httpd

在這裡插入圖片描述
測試
本機上輸入:20.0.0.13訪問,然後抓包
在這裡插入圖片描述

4.防盜鏈

1.防盜鏈的作用

  • 防盜鏈是防止別人的網站程式碼裡面盜用我們自己伺服器上的圖片,檔案,視訊等相關資源
  • 如果別人盜用網站的這些靜態資源,明顯的是會增大伺服器的頻寬壓力
  • 作為網站的維護人員,要杜絕伺服器的靜態資源被其它網站盜用

2.不設定防盜鏈

1.刪除域名配置

   [root@server1 ~]# cd /usr/local/httpd/htdocs/
      [root@server1 htdocs]# ls
       index.html
      [root@server1 htdocs]# rm -rf index.html 
      [root@server1 htdocs]# 

在這裡插入圖片描述

2.編輯配置檔案

     [root@server1 ~]# vi /etc/httpd.conf 
     修改:
       LoadModule rewrite_module modules/mod_rewrite.so   #取消配置

在這裡插入圖片描述
在這裡插入圖片描述
準備2個表情包一個html頁面
在這裡插入圖片描述
匯入Xshell中

在用本機ip地址訪問
在這裡插入圖片描述
重新開一臺機器(20.0.0.14)
1.安裝httpd,配置域名

[root@server2 ~]# yum -y install httpd
[root@server2 ~]# vi /var/www/html/index.html
新增:
 <html><body>Theft<img src="http://20.0.0.13/a.jpg"/></body></html>
[root@server2 ~]# systemctl stop firewalld 
[root@server2 ~]# setenforce 0
[root@server2 ~]# systemctl start httpd

測試:
可以直接盜用
在這裡插入圖片描述

3.配置防盜鏈

在主機上
1.編輯配置檔案

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# httpd -t
[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd

AllowOverride All
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.13/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.13/* [NC]
    RewriteCond %{HTTP_REFERER} !^http://20.0.0.13$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://20.0.0.13/b.png [R,NC]

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

相關文章