設定ファイルの場所
1 |
/etc/nginx/conf.d/default.conf |
upstreamディレクティブ
アップストリームサーバーのグループを指定します。アップストリームサーバとは上位サーバー(転送先サーバ)のことです。
1 2 3 |
upstream アップストリーム名 { server アドレス } |
serverディレクティブ
weightパラメータなどでそれぞれのアップストリームの重み付けをすることができます。
アドレスにはsockファイルを指定するなどしてソケット通信させることも可能です。
severディレクティブ
バーチャルホストごとに設定を追加できる。
listen
リッスンしている(リクエストを受け付ける)ポート番号を示します。デフォルトでは80番になっています。
server_name
バーチャルホストの名前
root
ドキュメントルート
location
URLと実際の格納先のパスを紐付ける。
try_files
左から順に実体ファイルが存在しているか確認し、あればそのままファイルを参照してくれます。
location
以下の形式で、URLを指定してどこに飛ばすかなどを指定します。
1 2 3 |
location プレフィックス URIのパス { [locationコンテキスト] } |
名前付きロケーション
具体的なURLには関与せずに、内部リダイレクトがしたい場合に利用されます。
1 2 3 |
location @名前 { [locationコンテキスト] } |
リバースプロキシの設定
リバースプロキシとは?
ユーザーのリクエストを受け取りそれを上位サーバ(アップストリームサーバ)に転送する機能です。
例:Railsのpumaに転送する(UNIXソケットを使っている。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
upstream myapp { server unix:///myapp/tmp/sockets/puma.sock; } server { try_files $uri/index.html $uri @myapp; # リバースプロキシ関連の設定 location @myapp { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; # upstreamで指定した「myapp」 proxy_pass http://myapp; } } |
proxy_pass 転送先URI
プロキシ先を指定します。マッチしたリクエストをアップストリームサーバにプロキシします。
UNIXソケットを利用することも可能。
アップストリーム先としてUNIXソケットを利用することも可能です。展開された後は以下のようになります。
1 |
http://unix:///myapp/tmp/sockets/puma.sock; |
この記事へのコメントはありません。