takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

NGINX の Reverse Proxy 備忘録

NGINX のリバースプロキシ備忘録

いつも忘れるので

ディレクト

/etc/nginx/conf.d/

ココに filename.conf という名前でファイルを作り、そこに設定を書く
おそらく目的ごとにファイルを分割するのが正義なのだろうが、どこかにベストプラクティスが書いてあるのだろうか?知らない。

設定テンプレ的な奴

# vim set tabstop=2 expandtab shiftwidth=2

# NAME は任意の名前
upstream NAME {
  # ip でも name でもいい。到達できること
  server IP_ADDRESS:PORT;
  server http://api.example.com:3000;
  keepalive 32; # 任意
}

server {
  listen 80;
  # listen 443;

  # server_name はベースとなる名前
  # IP Address でもよい
  # ドメイン名でもよい
  # 当然サブドメイン付きでもよい
  # 下記のように複数書けば複数定義できる
  server_name IP_ADDRESS;
  server_name example.com;

  # https 接続用
  # ssl_certificate <SSL CERT HERE>;
  # ssl_certificate_key <SSL KEY HERE>;

  # URL ごとに設定を書いていく
  location / {
    # ヘッダとか転送したい場合は以下などを適宜記述する
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Server $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # プロキシ先
    proxy_pass http://"upstreamで定義した名前"/;
  }

  location /api/ {
    # some setting
  }
}

参考

http://nginx.org/en/docs/http/ngx_http_proxy_module.html

docs.nginx.com

docs.nginx.com

docs.nginx.com