主頁 >  其他 > Apache的網頁優化!!給你的網頁套上一層層保護罩(網頁壓縮、網頁快取、隱藏版本資訊、設定防盜鏈)

Apache的網頁優化!!給你的網頁套上一層層保護罩(網頁壓縮、網頁快取、隱藏版本資訊、設定防盜鏈)

2021-02-05 10:55:33 其他

文章目錄

    • 一、Apache的壓縮模塊
        • (一)、網頁壓縮
        • (二)、網頁gzip概述
        • (三)、Apache的壓縮模塊
        • (四)、啟動網頁壓縮功能的步驟
        • (五)、Apache的網頁壓縮配置命令
    • 二、網頁快取
        • (一)、配置網頁快取時間概述
        • (二)、啟用網頁的快取功能步驟
        • (三)、網頁快取優化配置命令
    • 三、Apache防盜鏈
        • (一)、防盜鏈概述
        • (二)、防盜鏈步驟及命令
    • 四、隱藏版本資訊

一、Apache的壓縮模塊

(一)、網頁壓縮

1、網頁優化概述
在企業中,部署Apache后會有默認的配置引數,如果不及時進行優化配置,在當今互聯網時代,會引發網站很多問題,
為了適應企業需求,就需要考慮如何提升Apache的性能與穩定性,這就是Apache的優化內容

2、優化內容

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

(二)、網頁gzip概述

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

1、作用

  • 降低了網路傳輸的位元組數,加快網頁加載的速度
  • 節省流量,改善用戶的瀏覽體驗
  • gzip與搜索引擎的抓取作業有著更好的關系

(三)、Apache的壓縮模塊

1、Apache實作網頁壓縮的功能模塊包括

  • mod_gzip模塊
  • mod_deflate模塊

2、Apache 1.x

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

3、Apache 2.x

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

4、mod_gzip模塊與mod_deflate模塊

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

(四)、啟動網頁壓縮功能的步驟

1、查看是否安裝mod_deflate模塊
2、修改組態檔,啟用壓縮功能
3、訪問測驗

(五)、Apache的網頁壓縮配置命令

1、將之前Apache的舊的組態檔進行移除或者改名

cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1

在這里插入圖片描述

2、檢查是否安裝 mod_deflate 模塊

apachectl -t -D DUMP_MODULES | grep "deflate"

3、如果沒有安裝mod_deflate模塊,重新編譯安裝 Apache 添加mod_deflate 模塊

#需要先將服務關閉
systemctl stop httpd.service
#使用該命令查看是否關閉成功
systemctl status httpd.service

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

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate				#加入mod_deflate 模塊


  
make -j 2 && make install     #編譯安裝
      22

4、配置 mod_deflate 模塊 啟用

vim /usr/local/httpd/conf/httpd.conf
-----52行修改------
Listen 192.168.200.50:80
----105行取消注釋----
LoadModule deflate_module modules/mod_deflate.so
----197行取消注釋,修改------
ServerName www.gcc.com:80
-----末行添加-------
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png       #代表什么型別的內容啟用gzip壓縮
  DeflateCompressionLevel 9      #代表壓縮級別,范圍為1-9
  SetOutputFilter DEFLATE        #代表啟用 deflate 模塊對本站點的輸出進行gzip壓縮
</IfModule>

在這里插入圖片描述
5、檢查安裝情況,啟動服務

apachectl -t      #驗證組態檔的配置是否正確

apachectl -t -D DUMP_MODULES | grep "deflate"   #檢查是否安裝 mod_deflate 模塊
 deflate_module (shared)     #出現該段,說明安裝模塊成功

在這里插入圖片描述

6、添加網頁內容,進行后續的測驗

cd /usr/local/httpd/htdocs
#將自己想要測驗的圖片上傳到該/htdocs目錄下
vim /usr/local/httpd/htdocs/index.html

<html><body><h1>IU!IU!IU!</h1>
<img src='ceshitupian.png'/>
</body></html>
systemctl restart httpd.service

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

方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.182.11,多次重繪后查看回應頭中包含 Content-Encoding; gzip

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

方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.182.11 ,多次重繪后查看 Content-Encoding; gzip

二、網頁快取

(一)、配置網頁快取時間概述

  • 通過mod_expire模塊配置Apache,使網頁能在客戶端瀏覽器快取一段時間,以避免重復請求
  • 啟用mod_expire模塊后,會自動生成頁面頭部資訊中的Expires標簽和Cache-Control標簽,從而降 低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的

(二)、啟用網頁的快取功能步驟

1、查看是否安裝mod_expire模塊
2、修改組態檔啟用快取功能
3、訪問測驗

(三)、網頁快取優化配置命令

1、檢查是否安裝 mod_ expires 模塊

apachectl -t -D DUMP_MODULES | grep "expires"

2、如果沒有安裝mod_ expires 模塊,重新編譯安裝Apache 添加mod_ expires 模塊

systemctl stop httpd.service  #關閉httpd服務
cd /usr/local/httpd/conf      
mv httpd.conf httpd.conf.bak2  #將組態檔改為備份,準備重新生成
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires			#加入mod_expires 模塊

make && make install

3、配置 mod_expires 模塊啟用

vim /usr/local/httpd/conf/httpd.conf
----52行修改------
Listen 192.168.182.11:80
----111行取消注釋-----
LoadModule expires_module modules/mod_expires.so     #開啟mod_expires模塊
----199行取消注釋,修改------
ServerName www.panrj.com:80
-----末行添加---------
<IfModule mod_expires.c>
  ExpiresActive On                 #打開網頁快取功能
  ExpiresDefault "access plus 50 seconds"    #設定快取50</IfModule>

在這里插入圖片描述

在這里插入圖片描述

4、檢查安裝情況,啟動服務

apachectl -t      #驗證組態檔的配置是否正確
Syntax OK         #出現該欄位說明配置正確
 
apachectl -t -D DUMP_MODULES | grep "expires"  #檢查mod_expires 模塊是否已安裝 
 expires_module (shared)     #出現該行說明安裝成功

systemctl restart httpd.service

5、檢測快取是否生效

cat /usr/local/httpd/htdocs/index.html

在這里插入圖片描述
方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.182.11,多次重繪后查看回應頭中包含 Expires 項

方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.182.11 ,多次重繪后查看 Expires 項

在這里插入圖片描述

三、Apache防盜鏈

(一)、防盜鏈概述

  • 防盜鏈就是防止別人的網站代碼里面盜用服務器的圖片,檔案,視頻等相關資源
  • 如果別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力
  • 作為網站的維護人員,要杜絕我們服務器的靜態資源被其他網站盜用

1、盜鏈程序
這邊需要在準備一臺主機,作為盜鏈機

yum install -y httpd

vim /var/www/html/index.html
<html><body><h1>IT WORKS!</h1>
<img src="http://192.168.182.11/ceshiwenjian.png"/>
</body></html>

echo "192.168.182.11 www.panrj.com" >> /etc/hosts
echo "192.168.182.22 www.zhouyuzhu.com" >> /etc/hosts

systemctl restart httpd

在這里插入圖片描述
然后就可以通過www.zhouyuzhu.com盜鏈到www.panrj.com的圖片了,
在這里插入圖片描述
為了防止這種情況發生,我們需要在服務器上設定防盜鏈配置

(二)、防盜鏈步驟及命令

1、檢查是否安裝 mod_ rewrite 模塊

apachectl -t -D DUMP_MODULES | grep "rewrite"

2、如果沒有安裝mod_rewrite 模塊,重新編譯安裝 Apache 添加 mod_rewrite模塊

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel

cd /opt/httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \    #加入mod_ rewrite 模塊
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires			

make && make install

3、配置mod_rewrite模塊啟用

需提前在/usr/local/httpd/htdocs 中上傳盜鏈警告的圖片
在這里插入圖片描述

vim /usr/local/httpd/conf/httpd.conf
vim /usr/local/httpd/conf/httpd.conf
----157行取消注釋------
LoadModule rewrite_module modules/mod_rewrite.so
----249行下面添加-----
    RewriteEngine On             #打開 rewrite 功能,加入 mod_ rewrite 模塊內容
    RewriteCond %{HTTP_REFERER} !^http://panrj.com/.*$ [NC]  #設定匹配規則
    RewriteCond %{HTTP_REFERER} !^http://panrj.com$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.panrj.com/error.png  #設定跳轉動作

RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]的欄位含義:%{HTTP_REFERER}":存放一個鏈接的URL,表示從哪個鏈接訪問所需的網頁,
“!^:表示不以后面的字串開頭,
"http://www.panrj.com”:是本網站的路徑,按整個字串匹配,
".*$":表示以任意字符結尾,
“[NC]:表示不區分大小寫字母,
 
RewriteRule .*\.(gif | jpg | swf)$ http://www.panrj.com/error.png的欄位含義:
"."表示匹配一個字符,
"*"表示匹配0到多個字符,與“.” 合起來的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示,
"\.":在這里的“\”是轉義符,“\.”就代表符號“.”的意思,因為“."在指令中是屬于規則字符,有相應的含義,
如果需要匹配,需要在前面加個轉義符“\”,其它規則字符如果需要匹配,也做同樣處理,
“(gif | jpg | swf)" :表示匹配"gif”、“jpg”、“swf"任意 一個,“$”表示結束,最后的規則是以“.gif"、 “.jpg”、“.swf"結尾,前而是1到多個字符的字串,也就是匹配圖片型別的檔案,
"http://www.panrj.com/error.png”:表示轉發到這個路徑,
整個配置的含義是使用本網站以外的網站域名訪問本站的圖片檔案時,顯示error.png 這個圖片,

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

systemctl restart httpd.service    #重啟服務

此時如果再次使用盜鏈域名進行訪問的話,就會出現預先設定的警告的圖片,
在這里插入圖片描述

四、隱藏版本資訊

(一)、配置Apache隱藏版本資訊的必要性

  • Apache的版本資訊,透露了一定的漏洞資訊,從而給網站帶來安全隱患
  • 生產環境中要配置Apache隱藏版本資訊
  • 可使用Fiddler抓包工具分析

(二)、隱藏版本資訊步驟與命令

vim /usr/local/httpd/conf/httpd.conf
----491行取消注釋-------
Include conf/extra/httpd-default.conf

vim /usr/local/httpd/conf/extra/httpd-default.conf
-----55行,將原本的 Full 改為 Prod,只顯示名稱,沒有版本-------
ServerTokens Prod
#ServerTokens 表示 Server 回送給客戶端的回應頭域是否包含關于服務器 OS 型別和編譯過的模塊描述資訊,


systemctl restart httpd.service

此時就不會出現Apache的版本資訊了
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256721.html

標籤:其他

上一篇:Ubuntu 18.04 安裝程序記錄

下一篇:OSPF雙點雙規與雙歸屬實驗

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more