ubuntu

Apache配置里如何优化静态文件服务

小樊
54
2025-09-21 15:18:59
栏目: 编程语言

在Apache配置中优化静态文件服务可以通过以下几个方面来实现:

1. 启用压缩

启用Gzip压缩可以显著减少传输的数据量,从而加快页面加载速度。

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>

2. 启用缓存

通过设置缓存头,可以让浏览器缓存静态文件,减少重复请求。

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/x-javascript "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresDefault "access plus 2 days"
</IfModule>

<IfModule mod_headers.c>
    Header set Cache-Control "max-age=31536000, public"
</IfModule>

3. 启用KeepAlive

KeepAlive允许客户端在一个TCP连接上发送多个请求,减少了建立和关闭连接的开销。

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

4. 优化文件大小

确保静态文件尽可能小,可以通过压缩图片、合并CSS和JavaScript文件等方式来减少文件大小。

5. 使用CDN

内容分发网络(CDN)可以将静态文件缓存到全球各地的服务器上,用户可以从最近的服务器获取文件,从而加快访问速度。

6. 配置MIME类型

确保Apache正确配置了所有静态文件的MIME类型。

AddType image/png .png
AddType image/jpeg .jpg
AddType image/gif .gif
AddType text/css .css
AddType application/javascript .js
AddType text/html .html .htm

7. 禁用不必要的模块

禁用不需要的模块可以减少Apache的内存和CPU使用。

# 禁用不必要的模块
LoadModule dummy_module modules/mod_dummy.so

8. 使用mod_deflate压缩大文件

对于非常大的文件,可以使用mod_deflate进行压缩。

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    DeflateCompressionLevel 9
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
</IfModule>

9. 使用mod_expires设置过期时间

确保静态文件的过期时间设置合理,以便浏览器可以缓存文件。

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/x-javascript "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresDefault "access plus 2 days"
</IfModule>

10. 使用mod_headers设置缓存控制头

确保浏览器可以缓存静态文件。

<IfModule mod_headers.c>
    Header set Cache-Control "max-age=31536000, public"
</IfModule>

通过以上这些优化措施,可以显著提高Apache服务器上静态文件服务的性能。

0
看了该问题的人还看了