勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

Nginxのキャッシュ設定と負荷対策のチューニング方法について

  Nginx サーバー

Nginxでブラウザキャッシュやgzip圧縮等の設定を行い、ページ表示速度の向上させたい。また、メモリ1GBのVPSでも耐えられるようにチューニングも行っておきたい。以下に対応方法をメモ。

 

対応方法

/etc/nginx/nginx.conf

http {}ブロック内に以下を追記する。既に設定済みの項目がある場合は必要な方だけ残す。

# オープンファイルキャッシュ
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

# gzip圧縮設定
gzip on;
gzip_varying on;
gzip_proxied any;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_min_length 1024;

# メモリ設定
client_body_buffer_size 16k;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;
output_buffers 1 32k;
postpone_output 1460;

# keepalive設定
keepalive_timeout 30s;
keepalive_requests 100;

/etc/nginx/conf.d/custom.conf

ファイルキャッシュさせたいserver {}ブロック内に以下を追記する。静的ファイルに関するアクセスログはoff、キャッシュ期間は1年としているが適宜変更すること。

# -----------------------------------------------------
# 静的ファイルのキャッシュ設定
# -----------------------------------------------------
location ~* \.(?:css|js|gif|png|jpe?g|pdf|swf|rss|atom|ico|woff2?|svg)$ {
    access_log off;
    log_not_found off;

    expires 1y;
    add_header Cache-Control "public, no-transform" always;

    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    try_files $uri =404;
}

 - Nginx サーバー

  関連記事

Nginxで特定のディレクトリに対してBasic認証を設定
Nginxで特定のディレクトリに対してBasic認証を設定

Nginxで特定のディレクトリに対してBasic認証を設定したい。Apacheだ ...

Nginxでリダイレクト(http->https)及びリライト設定
Nginxでリダイレクト(http->https)及びリライト設定

Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...

ホスト側Nginx & Apacheコンテナ環境にてWeb公開用ディレクトリ構造について
ホスト側Nginx & Apacheコンテナ環境にてWeb公開用ディレクトリ構造について

Podmanコンテナ環境の各種ディレクトリを整理したい。docker-compo ...

CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築
CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築

先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...

AlmaLinux8系にNginxを導入しPodmanコンテナに接続する方法
AlmaLinux8系にNginxを導入しPodmanコンテナに接続する方法

AlmaLinux8でホスト側はApacheからPodmanコンテナ環境に接続し ...