在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以启用压缩传输。