2026年6月18日
2026年6月18日
Apacheで静的ファイルを効率よく配信する方法
ステップ1: メモリ制限の設定
# タイムアウトを増やすことで、静的ファイルの読み込みにかかる時間を延ばすことができます
<Limit GET POST>
Timeout 300
</Limit>
# 静的ファイルに適用する最大メモリサイズを制限します
SetEnvIfNoCase Request_URI \.(gif|jpe?g|png)$ nokeepalive
ステップ2: Gzip圧縮の設定
# Gzip圧縮機能を有効にする
<IfModule mod_deflate.c>
# 静的ファイルに対してGzip圧縮を適用する
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
</IfModule>
ステップ3: ロードバランサリングとキャッシュ設定
# Load Balancerからの静的ファイルの配信を最適化するための設定
ProxyPass /static/ http://127.0.0.1:8080/static/
<Proxy http://127.0.0.1:8080/static/>
Order deny,allow
Allow from all
</Proxy>
# キャッシュ機能を有効にする
FileETag MTime Size
# 静的ファイルのキャッシュ期限を設定
<FilesMatch \.(ico|jpg|jpeg|png|gif|js|css)$>
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
ステップ4: 確認と監視
# Apacheのログを確認して、静的ファイルの配信状況を監視します
tail -f /var/log/apache2/access.log