文章目錄
- Apache網頁優化概述
- gzip介紹
- Apache的壓縮模塊
- mod_gzip模塊與mod_deflate模塊
- 配置網頁壓縮功能
- 配置網頁壓縮
- 配置網頁的快取時間
- 配置網頁快取時間
- 配置Apache隱藏版本資訊
- 配置Apache實作防盜鏈
- 配置防盜鏈
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
附加:gzip占用c pu比deflate高,說明接待的用戶數量比較少
mod_gzip模塊與mod_deflate模塊
兩者均使用gzip壓縮演算法,運作原理類似
mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高
mod_gizp對服務器CPU占用要高一些
高流量的服務器,使用mod_deflate可能會比mod_gzip加載速度更快
配置網頁壓縮功能
1.啟用網頁壓縮功能的步驟
查看是否安裝mod_deflate模塊→修改組態檔啟用壓縮功能(注釋組態檔中#)→訪問測驗
2.檢查是否已安裝mod_deflate模塊
3.在配置httpd.conf中配置開啟gzip功能
4.重啟Apache服務,再用火狐瀏覽器訪問測驗網站
在瀏覽器中選擇“查看元素”可以看到有“Accept-Encoding:gzip”表示壓縮已經生效
配置網頁壓縮
將所需軟體上傳到root目錄下
解壓縮檔案
傳輸三個依賴包檔案apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[root@serverl ~]# ls-lh 查看安裝包檔案是否存在
-rw-r--r--. 1 root root 1071074 10月 13 13:58 apr-1.6.2.tar.gz
-rw-r--r--. 1 root root 565507 10月 13 13:58 apr-util-1.6.0.tar.gz
-rw-r--r--. 1 root root 6567926 10月 13 13:58 httpd-2.4.29.tar.bz2
解壓該檔案
[root@serverl ~]# tar zxvf apr-1.6.2.tar.gz
[root@serverl ~]# tar zxvf apr-util-1.6.0.tar.gz
[root@serverl ~]# tar jxvf httpd-2.4.29.tar.bz2
將檔案移動到其他目錄
[root@serverl ~]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@serverl ~]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
安裝環境
[root@serverl ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel perl expat-devel
編譯安裝
[root@serverl httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-cgid --enable-deflate --enable-gzip
[root@serverl httpd-2.4.29]# make && make install
編輯組態檔
[root@serverl httpd-2.4.29]# cd
[root@serverl ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@serverl ~]# vi /etc/init.d/httpd
#!/bin/sh 添加一下兩行
# chkconfig: 35 80 20 //35級別自動運行 第85個啟動 第21個關閉
# description: apache server
優化路徑并修改主組態檔
[root@serverl ~]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@serverl ~]# ln -s /usr/local/httpd/bin/* /usr/bin/
[root@serverl ~]# vi /etc/httpd.conf
ServerName www.example.com:80 ##去掉注釋
關閉防火墻與核心防護
[root@serverl ~]# systemctl stop firewalld
[root@serverl ~]# setenforce 0
開啟服務并開啟壓縮模塊
[root@serverl ~]# httpd -t 檢查語法是否有問題
Syntax OK
[root@serverl ~]# apachectl -t 檢查語法是否有問題
Syntax OK
[root@serverl ~]# systemctl start httpd
[root@serverl ~]# netstat -anpt | grep httpd
[root@serverl ~]# vi /etc/httpd.conf
LoadModule deflate_module_modules/mod_deflate.so #去掉注釋
[root@serverl ~]# systemctl restart httpd
查看deflate是否打開
[root@serverl ~]# apachectl -D DUMP_MODULES | grep deflate
deflate_module (shared)
[root@serverl ~]# vi /etc/httpd.conf
最后一行添加:
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript image/png image.jpg image/jpeg image/gif application/x-httpd-php application/x-javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
重啟服務并設定測驗頁
[root@serverl ~]# systemctl restart httpd
[root@serverl ~]# cd /usr/local/httpd/htdocs/
[root@serverl htdocs]# ls -lh
總用量 4.0K
-rw-r--r--. 1 root root 45 6月 12 2007 index.html
vi index.html
<html><body><h1>this is my web!</h1><img src=a.jpg / ></body></html>
將圖片拖入apache默認網頁檔案夾內

客戶端測驗并查看壓縮狀態


查看壓縮狀態

配置網頁的快取時間
1.通過mod_expire模塊配置Apache,使網頁能在客戶端瀏覽器快取一段時間,以避免重復請求(客戶機中)
啟用mod_expire模塊后,會自動生成頁面頭部資訊中的Expires標簽和Cache-Control標簽(快取標簽),從而降低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的(服務端中)
2.啟用網頁快取功能步驟
查看是否安裝mod_expire模塊→修改組態檔 啟用快取功能→訪問測驗
3.查看是否安裝了mod_expire模塊
/usr/local/apache/bin/apachectl -t -D DUMP_MODULES
如果輸出中沒有expires_module(static),則說明編譯時沒有安裝mod_expires
如果沒有安裝,需要重新編譯安裝
./configure --enable-expires…
make && make insatll
4.修改httpd.conf組態檔
啟用mod_expires模塊,并設定http協議下任意格式的檔案均60秒后過期
配置網頁快取時間
查看是否安裝expires
[root@serverl ~]# apachectl -D DUMP_MODULES | grep expires
停止Apache服務,并添加安裝環境,進行編譯安裝
[root@serverl ~]# systemctl stop httpd
[root@serverl ~]# cd httpd-2.4.29/
[root@serverl httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-cgid --enable-deflate --enable-gzip
[root@serverl httpd-2.4.29]#make && make install
修改組態檔
[root@serverl ~]# vi /etc/httpd.conf
LoadModule expires_module modules/mod_expires.so #取消注釋
在末尾添加以下內容
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access pule 60 seconds"
</IfModule>
查看配置是否出現問題,以及查看是否安裝了mod_expire模塊
[root@serverl ~]# apachectl -t
Syntax OK
[root@serverl ~]# httpd -t
Syntax OK
[root@serverl ~]# systemctl restart httpd
[root@serverl ~]# apachectl -D DUMP_MODULES | grep expires
expires_module (shared) //說明安裝了mod_expire模塊
客戶端測驗并查看快取時間
修改前

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

配置隱藏版本
修改組態檔
[root@serverl ~]# vi /etc/httpd.conf
Include conf/extra/httpd-default.conf //去掉注釋
[root@serverl ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf
ServerTokens Full→ServerTokens prod 并在其后面添加一行
ServerTokens Prod
Serversignature Off
重啟服務,并用客戶端登錄,并查看(修改前后對比發現版本號不見)

配置Apache實作防盜鏈
防盜鏈是防止別人的網站代碼里面盜用我們自己服務器上的圖片、檔案、視頻等相關資源
如果別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力
作為網站的維護人員,要杜絕服務器的靜態資源被其他網站盜用
使用三臺主機模擬盜鏈
三臺主機配置與功能

盜鏈模擬步驟
1.兩臺主機配置測驗頁面
2.盜鏈網站的測驗網頁,盜用源主機網站目錄下的一個a.jpg檔案
3.在Windows中訪問驗證
配置防盜鏈
再開一臺虛擬機(IP:20.0.0.10),安裝httpd服務,關閉防火墻和核心防護
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# setenforce 0
[root@server1 ~]# yum -y install httpd
編輯默認網頁檔案指向20.0.0.11的圖片檔案
[root@server1 html]# vi index.html
html><body><h1>server 2</h1><img src= http://20.0.0.11/a.jpg / ></body></html>
開啟服務
[root@server1 html]# systemctl start httpd
客戶端測驗訪問20.0.0.10發現圖片是20.0.0.11服務器上的
當前效果圖(地址為http://20.0.0.11/a.jpg)

此時我們在源主機(IP:20.0.0.10)上配置防盜鏈配置
[root@serverl ~]# apachectl -D DUMP_MODULES | grep rewrite
修改以下配置
[root@serverl ~]# vi /etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so //去掉注釋符號
源主機(IP:20.0.0.11)重啟服務,將error.png圖片上傳到默認網頁目錄里
[root@serverl ~]# apachectl -D DUMP_MODULES | grep rewrite
rewrite_module (shared)
修改以下配置
[root@serverl ~]# vi /etc/httpd.conf
添加以下內容
AllowOverride None
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://20.0.0.11$ [NC]
RewriteCond %{HTTP_REFERER} !^http://20.0.0.11/* [NC]
RewriteCond %{HTTP_REFERER} !^http://20.0.0.11/.*$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://20.0.0.11/error.png [R,NC]
客戶端測驗20.0.0.10、20.0.0.11


其他效果圖:發現出現了302,即為重定向

配置規則說明

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218849.html
標籤:其他
上一篇:pip安裝詳解
