Apache網頁優化概述
- 在企業中,部署Apache後只採用默認的配置參數,會引起網站不少問題,換言之默認配置是針對之前較低的服務器配置的,之前的配置已經不適用當今互聯網時代
- 爲了適應企業需求,就須要考慮如何提高Apache的性能與穩定性,這就是Apache優化內容
優化內容
配置網頁壓縮功能
工做模式的選擇與參數優化
配置防盜鏈
配置隱藏版本號
gzip介紹
配置Apache的網頁壓縮功能,是使用gzip壓縮算法來對網頁進行壓縮後再傳輸到客戶端瀏覽器
做用
下降了網絡傳輸的字節數,加快網頁加載的速度
節省流量,改善用戶的瀏覽體驗
gzip與搜索引擎的抓取工具備着更好的關係
Apache的壓縮模塊
Apache實現網頁壓縮的功能模塊包括
mod_gzip模塊
mod_deflate模塊
Apache 1.x
沒有內建網頁壓縮技術,但可以使用第三方mod_gzip模塊執行壓縮
Apache 2.x
在開發的時候,內建了mod_deflate這個模塊,取代mod_gzip
mod_gzip模塊與mod_deflate模塊比較
* 二者均使用gzip壓縮算法,運做原理相似
* mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高
* mod_gzip對服務器CPU的佔用要高一些
* 高流量的服務器,使用mod_deflate可能會比mod_gzip加載速度更快
啓用網頁壓縮功能步驟
環境(網頁壓縮實例)
一臺Linux服務器(192.168.13.128)
一臺win10測試機
1,遠程共享掛載到Linux上
1)在Windows上將LAMP所需壓縮軟件包共享出來(此處若有問題請看以前的博客相關文章)
2)在Linux上使用遠程共享獲取文件並掛載到/abc目錄下
[root@localhost httpd]# mkdir /abc ##建立掛載點/abc
root@lamp ~]# smbclient -L //192.168.100.3/
Sharename Type Comment
--------- ---- -------
LAMP-C7 Disk
[root@lamp ~]# mount.cifs //192.168.100.3/LAMP-C7 /mnt
##遠程掛載軟件包到/mnt目錄
2,手工編譯安裝Apache
1)將源碼包解壓到/opt目錄下
[root@lamp mnt]# cd /mnt ##切換到/mnt目錄下
[root@lamp mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/ ##解壓源碼包到/opt下
...
[root@lamp mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
....
[root@lampt mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
...
[root@lamp mnt]# cd /opt //進入/opt目錄
[root@lamp opt]# ls //查看解壓的文件
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh
2)將apr組件包移動到http中並安裝編譯工具
[root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[root@lamp opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
[root@localhost opt]# yum -y install \
gcc \ //c語言
gcc-c++ \ //c++語言
make \ //編譯工具
pcre-devel \ //pcre語言工具
expat-devel \ //識別標籤性語言工具
perl \
pcre \
zlib-devel //數據壓縮用的函式庫
3)配置安裝目錄及各類模塊
[root@lamp opt]# cd /opt/httpd-2.4.29/
[root@lamp httpd-2.4.29]#./configure \ //配置
--prefix=/usr/local/httpd \
--enable-deflate \ //配置壓縮模塊
--enable-expires \ //配置緩存模塊(下一個緩存實驗須要)
--enable-so \ //apache核心模塊開啓
--enable-rewrite \ //開啓重寫功能,防盜鏈
--enable-charset-lite \ //支持字符集,簡體中文
--enable-cgi //通用網關接口
...
4)編譯和安裝
[root@lamp httpd-2.4.29]# make //生成可執行的二進制文件
...
[root@lamp httpd-2.4.29]# make install //複製二進制文件到系統,配置應用環境
...
5)配置http主配置文件
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
[root@localhost httpd]# cd conf/ ##切換到http主配置文件中
[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf ##方便管理建立軟鏈接
##爲方便操做覆蓋原啓動腳本,並添加到service管理器中
[root@localhost conf]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //複製apache啓動腳本覆蓋httpd原始的啓動腳本
[root@localhost conf]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 35 85 21
# description: Apache is a World Wide Web server //在#!/bin/sh下行插入這兩行內容
[root@localhost conf]# chkconfig --add httpd //將httpd加入到SERVICE管理器中
[root@localhost conf]# vim /etc/httpd.conf ##配置主配置文件
Listen 192.168.13.128:80 ##設置監聽地址
#Listen 80
ServerName www.kgc.com:80 ##設置域名
LoadModule deflate_module modules/mod_deflate.so ##啓用壓縮模塊
LoadModule headers_module modules/mod_headers.so ##啓用頭部模塊
##大G到末行添加一下內容
LoadModule filter_module modules/mod_filter.so
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml test/java
script text/jpg text/png ##支持壓縮類型
DeflateCompressionLevel 9 ##高壓縮比
SetOutputFilter DEFLATE ##默認過濾器加載
</IfModule>
[root@localhost conf]# service httpd start ##重啓服務
[root@localhost conf]# systemctl stop firewalld.service
[root@localhost conf]# setenforce 0
[root@localhost conf]# cd /usr/local/httpd/bin/ ##查看deflate模塊啓動狀態
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate"
deflate_module (shared)
6)切換到站點,編輯網頁內容
[root@localhost conf]# cd ..
[root@localhost httpd]# pwd
/usr/local/httpd
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# cat index.html
<html><body><h1>It works!</h1></body></html>
3,在win10中安裝fiddler抓包工具
4,編輯網頁,添加一個圖片
1)切換到你的共享掛載點,將圖片複製到站點中
[root@localhost htdocs# cd /mnt ##切換到掛載點
[root@localhost mnt]# cp kali.jpg /usr/local/httpd/htdocs/ ##將圖片複製到站點中
[root@localhost mnt]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls ##查看圖片複製成功
index.html kali.jpg
2)編輯站點的首頁內容
[root@localhost ~]# cd /usr/local/httpd/
[root@localhost httpd]# cd htdocs/ ##切換到站點
[root@localhost htdocs]# ls
index.html kali.jpg
[root@localhost htdocs]# vim index.html ##編輯網頁內容,將圖片加入到網頁中
<html><body><h1>It works!</h1>
<img src="kali.jpg"/> ##將圖片放到網頁中
</body></html>
5,測試網頁,查看抓包信息
配置網頁的緩存時間
- 經過mod_expire模塊配置Apache,使用網頁能在客戶端瀏覽器緩存一段時間,以免重複請求
- 啓用mod_expire模塊後,會自動生成頁面頭部信息中的Expires標籤和Cache-Control標籤,從而下降客戶端的訪問頻率和次數,達到減小沒必要要的流量和增長訪問速度的目的
啓用網頁緩存功能步驟
環境
編譯安裝和前部分是同樣的,配置加上了緩存模塊,如下爲配置緩存模塊操做
1,配置主配置文件,開啓緩存模塊
[root@localhost httpd-2.4.29]# vim /etc/http.conf
LoadModule expires_module modules/mod_expires.so ##開啓緩存模塊
<IfModule mod_expires.c> ##大G末行添加配置文件
ExpiresActive On
ExpiresDefault "access plus 50 seconds"
</IfModule>
2,啓動Apachectl,關閉防火牆並重啓服務
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/bin ##測試語法是否有錯誤
[root@localhost bin]# ./apachectl -t
[root@localhost bin]# ./apachectl start ##開啓
[root@localhost bin]# systemctl stop firewalld.service ##關閉防火牆
[root@localhost bin]# setenforce 0
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "expires" ##查看模塊開啓狀態
expires_module (shared)
3,從新用測試機訪問網頁,測試抓包
謝謝閱讀!!!