web-dev-qa-db-ja.com

ApacheでのGzipの有効化とキャッシュの有効期限の自動化

代わりに、次のコードをコピーして貼り付けて、Gzip圧縮を有効にし、新しいサーバー環境を作成するたびにApache2.confにキャッシュの有効期限を設定する必要があります。多分?

## ENABLE GZIP
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
## ENABLE GZIP ##

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

更新

これらを貼り付けたりincludesせずに/etc/Apache2/Apache2.confに自動的に追加する他の方法はありませんか?

3
JohnDoea

構成をできるだけ簡単に展開するには、スクリプトを実行する(または各コマンドを実行する)のが最善の方法です。

リストしたすべての変更が必要なわけではありません。 Apache2には、すでにmods-available/deflate.confが付属しています。 GZIPサポートを取得するには、有効にしてください。

スクリプトは次のようになります(私はa2gzip.shと呼びました):

#!/bin/bash

cat > /etc/Apache2/mods-available/expires.conf << EOF
<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/jpg "access 1 year"
        ExpiresByType image/jpeg "access 1 year"
        ExpiresByType image/gif "access 1 year"
        ExpiresByType image/png "access 1 year"
        ExpiresByType text/css "access 1 month"
        ExpiresByType application/pdf "access 1 month"
        ExpiresByType application/javascript "access 1 month"
        ExpiresByType application/x-javascript "access 1 month"
        ExpiresByType application/x-shockwave-flash "access 1 month"
        ExpiresByType image/x-icon "access 1 year"
        ExpiresDefault "access 2 days"
</IfModule>
EOF

a2enmod deflate expires
systemctl reload Apache2

Sudo ./a2gzip.shを使用してスクリプトを実行します。

2
estibordo