bucket-sort logo bucket-sort

プログラミングとインフラエンジニアリングの覚え書き

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. Nginxでオンザフライgzip圧縮送信は使えるのか

Nginxでオンザフライgzip圧縮送信は使えるのか

Feb 9, 2026 Nginx , Apache bucket-sort

Apache では、以下のような設定を行うことでオンザフライ gzip 圧縮送信を有効にできます。

画像などのアセットや CSS / JavaScript を gzip 圧縮して送信することで、 転送量の削減やレスポンス速度の改善が期待できます。

AddOutputFilterByType DEFLATE text/html text/css text/javascript application/x-javascript
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

各設定の意味は以下の通りです。

  • AddOutputFilterByType DEFLATE 指定した MIME タイプのレスポンスを gzip 圧縮する(mod_deflate による動的圧縮)

  • SetOutputFilter DEFLATE すべての出力を圧縮対象とする

  • SetEnvIfNoCase Request_URI … no-gzip dont-vary 画像など既に圧縮されている形式は圧縮しない(効率のため)

  • Header append Vary User-Agent env=!dont-vary 圧縮対応/非対応ブラウザの違いによるキャッシュ混在を防ぐため Vary: User-Agent ヘッダを追加

なお、前提として mod_deflate モジュールがロードされている必要があります。

# /etc/httpd/conf.modules.d/00-base.conf
LoadModule deflate_module modules/mod_deflate.so

Nginx ではオンザフライ gzip 圧縮送信が使えるか?

デフォルト状態で確認

まずは Nginx をインストールした直後の状態で確認してみます。

curl -H "Accept-Encoding: gzip" -I https://example.com/

レスポンスヘッダに以下が含まれていないため、 gzip 圧縮は有効になっていないことが分かります。

Content-Encoding: gzip
Vary: Accept-Encoding

設定を変更して再度確認

以下の設定を追加します。

# --- Gzip compression (on-the-fly) ---
gzip on;                # gzip 圧縮を有効化
gzip_comp_level 6;      # 圧縮率(1:速い〜9:高圧縮)
gzip_min_length 256;    # 小さすぎるレスポンスは圧縮しない
gzip_vary on;           # Vary: Accept-Encoding を追加
gzip_proxied any;       # Proxy 経由の応答も圧縮

gzip_types
    text/plain
    text/css
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    image/svg+xml;

gzip_disable "msie6";   # 古いブラウザを除外

設定のポイント:

  • gzip on; gzip 圧縮を有効化

  • gzip_comp_level 6; 圧縮率(Apache の mod_deflate と同等なら 5〜6 が目安)

  • gzip_min_length 256; 小さすぎるレスポンスは圧縮しない

  • gzip_types HTML 以外に圧縮対象とする MIME タイプを指定

  • gzip_vary on; キャッシュ整合性のため Vary: Accept-Encoding を追加

設定を反映します。

nginx -t
systemctl reload nginx

動作確認

curl -H "Accept-Encoding: gzip" -I https://example.com/

レスポンスヘッダに以下が含まれていれば、gzip 圧縮が有効になっています。

Vary: Accept-Encoding
Content-Encoding: gzip

まとめ

Apache で行っていたオンザフライ gzip 圧縮送信は、Nginx においても同様に設定可能であることが確認できました。

Apache Nginx Webサーバー
← Nginxはどうして .htaccessをサポートしないのか 開発終了したNginx Unitが気になったので調べてインストールしてみた →

Related Posts

  • Nginxはどうして .htaccessをサポートしないのか Feb 8, 2026
  • ApacheとNginxの性能差を簡易ベンチマークで比較してみる Feb 7, 2026
  • Apache管理者向けApache vs Nginxまとめ Feb 6, 2026
  • 公開サーバーハングアップ時の記録 ④対策 Feb 17, 2026

Table of Contents

  • Nginx ではオンザフライ gzip 圧縮送信が使えるか?
    • デフォルト状態で確認
    • 設定を変更して再度確認
    • 動作確認
  • まとめ

Recent Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • [C#] delegate と event の仕組みを整理する Apr 1, 2026
  • Pub/Sub パターンとは何か Mar 31, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Filament の dehydrated メソッドとは何か Mar 29, 2026

Categories

  • AWS27
  • C#22
  • .NET20
  • Laravel16
  • Linux12
  • Apache8
  • MySQL8
  • PHP8
  • DynamoDB6
  • Nginx5
  • WordPress4
  • インフラ4
  • Hugo3
  • セキュリティ3
  • .NET Framework1
  • Aurora1
  • Filament1
  • Git1
  • SQS1

Tags

  • AWS
  • C#
  • .NET
  • Laravel
  • PHP
  • MySQL
  • セキュリティ
  • Linux
  • Apache
  • Code Snippet
  • DynamoDB
  • NoSQL
  • PHP-FPM
  • RDS
  • DoS
  • Nginx
  • Windows
  • WordPress
  • パフォーマンス
  • 監視
  • Amazon Linux 2023
  • CMS
  • Docker
  • Ipset
  • Iptables
  • OPCache
  • Webサーバー
  • 認可
  • Aurora
  • Blade
Powered by Hugo & Explore Theme.