在CentOS上配置Apache2以啟用壓縮傳輸,可以通過以下步驟實現:
首先,確保你已經安裝了mod_deflate和mod_gzip模塊。這些模塊通常默認安裝在Apache中,但如果沒有,可以使用以下命令安裝:
sudo yum install mod_deflate mod_gzip
啟用這些模塊:
sudo systemctl enable httpd
sudo systemctl start httpd
然后,啟用mod_deflate和mod_gzip模塊:
sudo systemctl enable mod_deflate
sudo systemctl enable mod_gzip
編輯Apache的主配置文件/etc/httpd/conf/httpd.conf或創建一個新的配置文件(例如/etc/httpd/conf.d/compression.conf)來添加壓縮配置。
mod_deflate在配置文件中添加以下內容:
<IfModule mod_deflate.c>
# 啟用壓縮
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
# 壓縮級別
DeflateCompressionLevel 9
# 最小壓縮長度
SetOutputFilter DEFLATE
# 不壓縮的文件類型
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|pdf|swf|ico|zip|tgz|gz2|xz2|bz2|tar|gz|rar)$ no-gzip dont-vary
# 不壓縮的瀏覽器
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>
mod_gzip如果你更喜歡使用mod_gzip,配置如下:
<IfModule mod_gzip.c>
# 啟用壓縮
AddOutputFilterByType GZIP text/html text/plain text/xml text/css application/javascript application/json
# 壓縮級別
GzipCompressionLevel 9
# 最小壓縮長度
SetOutputFilter GZIP
# 不壓縮的文件類型
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|pdf|swf|ico|zip|tgz|gz2|xz2|bz2|tar|gz|rar)$ no-gzip dont-vary
# 不壓縮的瀏覽器
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>
保存配置文件后,重啟Apache以應用更改:
sudo systemctl restart httpd
你可以使用以下命令來驗證壓縮是否生效:
curl -I -H "Accept-Encoding: gzip, deflate" http://your_server_ip_or_domain
如果服務器正確響應并返回壓縮的內容,你會看到Content-Encoding: gzip或Content-Encoding: deflate頭。
通過以上步驟,你可以在CentOS上成功配置Apache2以啟用壓縮傳輸。