apache網頁優化

cuiwangfeng發表於2020-11-09

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

1.2、作用

1.2.1、降低了網路傳輸的位元組數:加快網頁載入的速度

1.2.2、節省流量,改善使用者的瀏覽體驗

1.2.3、gzip與搜尋引擎的抓取工具有著更好的關係

二、Apache的壓縮模組
2.1、Apache實現網頁壓縮的功能模組包括:mod_gzip模組和mod_deflate模組

2.2、Apache 1.X:沒有內建網頁壓縮技術,但可使用第三方mod_gzip模組執行壓縮

2.3、Apache 2.X:在開發的時候,內建了mod_deflate這個模組,取代mod_gzip

2.4、mod_gzip模組與mod_deflate模組

2.4.1、兩者均使用gzip壓縮演算法,運作原理類似

2.4.2、mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高

2.4.3、mod_gzip對伺服器CPU的佔用要高一些

2.4.4、高流量的伺服器,使用mod_deflate可能會比mod_gzip載入速度更快

Top
三、配置網頁壓縮功能
3.1、啟用網頁壓縮功能的步驟
3.1.1、檢視是否安裝mod_deflate模組

3.1.2、修改配置檔案啟用壓縮功能

3.1.3、訪問測試

3.2、配置網頁壓縮
3.2.1、將軟體上傳到/opt 目錄下,關閉防火牆和核心防護

1 systemctl stop firewalld
2 seteforce 0
3.2.2、解壓縮檔案

1 [root@localhost ~]# cd /opt
2 [root@localhost opt]# tar xf apr-1.6.2.tar.gz
3 [root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
4 [root@localhost opt]# tar xf httpd-2.4.29.tar.bz2 ###yum -y install bzip2
5 [root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
6 [root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
3.2.3、安裝環境

1 yum -y install
2 gcc
3 gcc-c++
4 make
5 pcre-devel
6 expat-devel
7 perl

3.2.4、編譯安裝

1 [root@localhost opt]# cd /opt/httpd-2.4.29/
2 ./configure
3 --prefix=/usr/local/httpd
4 --enable-so
5 --enable-rewrite
6 --enable-charset-lite
7 --enable-cgi
8 make && make install

3.2.5、配置檔案編輯

1 cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
2 vi /etc/init.d/httpd
3 #!/bin/bash
4 # chkconfig: 25 99 20
5 # description: Apache Server
3.2.6、優化路徑並修改主配置檔案

1 ln -s /usr/local/httpd/conf/httpd.conf /etc
2 ln -s /usr/local/httpd/bin/* /usr/local/bin
3 vi /etc/httpd.conf
4 ServerName www.xuhao.com:80 ###去掉#號
3.2.7、開啟服務並開啟壓縮模組

1 httpd -t
2 apachectl -t
3 systemctl start httpd
4 netstat -anpt | grep httpd
5 vi /etc/httpd.conf
6 LoadModule deflate_module_modules/mod_deflate.so #去掉#號

1 systemctl restart httpd
2 apachectl -D DUMP_MODULES | grep deflate
3 vi /etc/httpd.conf
4 在末尾新增
5 AddOutputFilterByType DEFLATE text/plain text/css text/xml text/javascript image/png image/jpg image/jpeg application/x-httpd-php application/x-javascript
6 DeflateCompressionlevel 9
7 SetOutputFilter DEFLATE

3.2.8、重啟服務並設定測試頁

1 systemctl restart httpd
2 vi /usr/local/httpd/htdocs/index.html
3

this is a text page!!

<img src=a.jpg / >
將圖片拖入apache預設網頁資料夾內

3.2.9、客戶端測試並用Fiddler軟體檢視壓縮狀態

四、配置網頁的快取時間
4.1、通過mod_expire模組配置Apache,使用能在客戶端瀏覽器快取一段時間,以避免重複請求

4.2、啟用mod_expire模組後,會自動生成頁面頭部資訊中的Expire標籤和Cache-Control標籤,從而降低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的

4.3、啟用網頁快取功能步驟

4.3.1、檢視是否安裝mod_expire模組

4.3.2、修改配置檔案,啟用快取功能

4.3.3、訪問測試

4.4、配置網頁快取時間

4.4.1、開啟expire模組

1 vi /etc/httpd.conf
2 LoadModule expires_module_modules/mod_expires.so #去掉#號
4.4.2、在主配置檔案末尾新增

1 vi /etc/httpd.conf
2
3 ExpiresActive On
4 ExpiresDefault “access plus 60 seconds”
5
6 末尾新增
1 httpd -t
2 apachectl -t
3 systemctl restart httpd
4 apachectl -D DUMP_MODULES | grep expires
4.4.3、客戶端測試並用Fiddler軟體檢視快取時間
在這裡插入圖片描述

五、配置Apache隱藏版本資訊
5.1、Apache的版本資訊,透露了一定的漏洞資訊從而給網站帶來安全隱患

5.2、配置隱藏版本

1 vi /etc/httpd.conf
2 Include conf/extra/httpd-default.conf #去掉#號
1 vi /usr/local/httpd/conf/extra/httpd-default.conf
2 ServerTokens Prod #修改
3 Serversignature Off #新增
重啟服務,並用客戶端登入,利用Fiddler軟體檢視(修改前後對比)

1 systemctl restart httpd

六、配置Apache實現防盜鏈

6.1、防盜鏈是防止別人的網站程式碼裡面盜用我們自己伺服器上的圖片,檔案,視訊等相關資源

6.2、如果別人盜用網站的這些靜態資源,明顯的是會增大伺服器的頻寬壓力

6.3、作為網站的維護人員,要杜絕伺服器的靜態資源被其他網站利用

在這裡插入圖片描述
6.5、盜鏈模擬步驟

6.5.1、兩臺主機配置測試頁面

6.5.2、盜鏈網站的測試網頁,盜用源主機網站目錄下的一個a.jpg檔案

6.5.3、在Windows中訪問驗證

6.6、配置防盜鏈

6.6.1、再開一臺虛擬機器(IP:20.0.0.30),安裝httpd服務,關閉防火牆和核心防護

1 yum -y install httpd
2 systemctl stop firewalld
3 seteforce 0
6.6.2、編輯預設網頁檔案指向20.0.0.10的圖片檔案

1 vi /var/www/html/index.html
2

server 2

<img src=http://20.0.0.10/a.jpg / >
6.6.3、客戶端測試訪問20.0.0.30發現圖片是20.0.0.10伺服器上的

6.6.4、此時我們在源主機(IP:20.0.0.10)上配置防盜鏈配置

1 vi /etc/httpd.conf
2 LoadModule rewrite_module modules/mod_rewrite.so #去掉#號
6.6.5、源主機(IP:20.0.0.10)重啟服務,將error.png圖片上傳到預設網頁目錄裡

1 vi /etc/httpd.conf
2 <Directory “/usr/local/httpd/htdocs”>
3 …省略內容
4 RewriteEngine On
5 RewriteCond %{HTTP_REFERER} !^http://192.168.73.40/.$ [NC]
6 RewriteCond %{HTTP_REFERER} !^http://192.168.73.40$ [NC]
7 RewriteCond %{HTTP_REFERER} !^http://192.168.73.40/

8 RewriteRule .*.(gif|jpg|swf)$ http://192.168.73.40/error.png [R,NC]
9

1 systemctl restart httpd

6.6.6、客戶端測試20.0.0.10及20.0.0.30

20.0.0.10的測試結果如下:
在這裡插入圖片描述
20.0.0.30的測試結果如下:
在這裡插入圖片描述
6.7、配置規則變數說明
在這裡插入圖片描述

相關文章