環境構築

Windows

リバースプロキシ

設定項目

proxy_redirect    off;
proxy_pass    http://localhost:8080/;
proxy_set_header Host    $host;
proxy_set_header X-Real-IP    $remote_addr;
proxy_set_header X-Forwarded-Host    $host;
proxy_set_header X-Forwarded-Server    $host;
proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
  • proxy_redirect
    • レスポンスヘッダのうち、Location、Refresh を書き換えるかどうか
    • 設定値:off / default / 指定(例:proxy_redirect http://localhost:8000/two/ http://frontend/one/;
      • off ... 書き換えしない
      • default ... proxy_pass の値が使われる
  • proxy_pass
    • プロキシ先のサーバのURI を指定
    • 設定例:proxy_pass http://localhost:8080/;
    • Host ヘッダがリクエストに含まれていなかったら proxy_pass の値が使われるので、ちゃんと送りたければ「proxy_set_header Host $host」を設定すること
  • proxy_set_header Host
    • Host ヘッダを指定
    • 設定例:proxy_set_header Host $host
  • proxy_set_header X-Real-IP
    • アクセス元のIP
  • proxy_set_header X-Forwarded-Host
    • オリジナルのホスト名。クライアントが Host リクエストヘッダで渡す。
  • proxy_set_header X-Forwarded-Server
    • プロキシサーバのホスト名
  • proxy_set_header X-Forwarded-For
    • クライアントの IP アドレス

nginx-proxy

  • nginx-proxy
    • 複数のサービスはそれぞれのコンテナで動いているので、各リクエストを振り分けるリバースプロキシが必要
    • nginx-proxyを使うと立ち上がっているDockerコンテナに自動的に振り分けを行うことができる

利用例

# docker run -d -p 8080:80 -v /var/run/docker.sock:/tmp/docker.sock:ro docker.io/jwilder/nginx-proxy
  • localhost:8080 <=> nginx-proxy:80

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-07 (木) 10:56:15 (931d)