プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Nginx よく使う設定

Nginxをインストールした後は設定ファイルを編集する
 
設定ファイル:/etc/nginx/nginx.conf
 
※変更後は必ず設定を反映させる為に下記コマンドを実行すること

sudo nginx -s reload

 
 
ちなみにNginxの起動・停止は下記コマンド

#起動
sudo nginx

#停止
sudo nginx -s stop

 
 


■定義

Coreモジュールのディレクティブを定義

events {
    Eventsモジュールのディレクティブを定義
}

http {
    HTTPモジュールのディレクティブを定義

    server {
        仮想サーバに関する設定を定義

        location / {
            ディレクトリ毎のドキュメントルートを定義
        }
    }
}

 
 


■バーチャルサーバー設定

【基本構文】

server {
    server_name ドメイン;
}

 

【使用例】

http {
    server {
        #ポート80で待ち受ける
        listen 80;
        server_name 192.168.33.10
    }
}

 
 


■ドキュメントルート設定

【基本構文】

server {
    root ルートディレクトリ;
}

 

【使用例】

http {
    server {
        listen 80 default_server;
        server_name 192.168.33.10;
        root /var/www/html;
    }
}

 
 


■IPフィルタリング設定

【基本構文】

http {
    #許可
    allow ドメイン;

    #その他は拒否
    deny all;
}

 

【使用例】

http {
    #許可
    allow 192.168.33.10;

    #その他は拒否
    deny all;
}

 
 


■リバースプロキシの設定

【基本構文】

location /google {
    proxy_pass リバースプロキシのURL;
}

 

【使用例】

server {
    listen 80 default_server;
    server_name _;

    location /google {
        proxy_pass https://google.com/;
    }
}

「192.168.33.10/google」にアクセスすると「https://google.com」に遷移する

URLの末尾に「/」を付けた完全なURLにすること
「/」を付けない場合は「192.168.33.10/google」に遷移し、想定どおりにならないことがあるので注意
 
 


■リダイレクト

【基本構文】

location /yahoo {
    return 301 リダイレクト先のURL;
}

 

【使用例】

server {
    listen 80 default_server;
    server_name _;

    location /yahoo {
        return 301 http://yahoo.co.jp;
    }
}

 
 


■文字列を置換

【基本構文】

sub_filter

 

【使用例】

erver {
   listen 80 default_server;
   server_name _;
   sub_filter 'hoge' 'fuga';
   sub_filter_once off;

    location / {
       root /var/www/html;
   }
}

「/var/www/html」配下の下記ファイルにアクセスすると次の挙動となる

・index.html ⇒ index.html
・hoge.html ⇒ fuga.html
・fuga.html ⇒ fuga.html
※「sub_filter_once」で繰り返しのon/offを設定
デフォルトでは「on」となっている為、1度しか変換されない