web-dev-qa-db-ja.com

nginx:ホスト名に基づいてgzip圧縮を有効にする

複数のドメインのhttpトラフィックを提供するnginxを実行している単一のマシンがあります(同じLuaコードベースを使用)。一部のドメインでは、gzip圧縮を有効にしたいです。特定のドメインセットに対してgzip圧縮を有効にすることは可能ですか?どうやって?

4
simplfuzz

絶対に documentation を見ると、次のレベルhttp, server, location, if in locationのいずれかにgzipを配置することが許容され、ドメインはで定義されていることがわかります。 server_nameを使用してserverレベルgzipを横に配置できます。

まず、nginx.confファイルでgzip on;が存在するかどうかを確認し、存在する場合は削除します。

次に、confファイルを作成し、gzipを使用する場所を定義する必要があります。

server {
  server_name www.myexample.com;
  listen 80;
  gzip off;
}

server {
  server_name www.myotherexample.com;
  listen 80;
  gzip on;
}
4
Drifter104

はい、そうです。ホスト名ごとにサーバーブロックが必要です。

gzip on;

または

gzip off;

各サーバーブロック内。 ドキュメントはここにあります 。唯一の問題は、ある種のワイルドカードを使用した場合、またはドメインごとにサーバーブロックがない場合です。

例えば

server {
  server_name www.example.com;
  listen 80;
  root /what/ever;
  gzip on;
}

server {
  server_name www.example2.com;
  listen 80;
  root /what/ever2;
  gzip off;
}

これが意味をなさない場合は、nginx構成ファイルとサイトファイルを投稿してください。確認できます。

4
Tim