リバースプロキシの設定
Nginxをインストールすると「/etc/nginx/conf.d」というディレクトリが作成されます。
デフォルトの設定では、このディレクトリ配下の「~~~.conf」というファイルを起動時に読み込むようになっているので、リバースプロキシを設定したい場合、このディレクトリ配下に設定ファイルを追加します。
今回は「proxy.conf」というファイル名で作成し、以下の内容で保存します。
server{
server_name site1.st40.xyz;
proxy_redirect off;
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;
location / {
proxy_pass http://localhost:8080;
}
}
設定後はNginxを再起動してください。
上記はURL「http://site1.st40.xyz」のアクセスがあったら「http://localhost:8080」のコンテンツを返します。
複数サーバのリバースプロキシの設定
複数サイトのリバースプロキシを設定する場合は以下の通りになります。
server{
server_name site1.st40.xyz;
proxy_redirect off;
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;
location / {
proxy_pass http://localhost:8080;
}
}
server{
server_name site2.st40.xyz;
proxy_redirect off;
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;
location / {
proxy_pass http://localhost:8081;
}
}
上記は「http://site1.st40.xyz」の他に、URL「http://site2.st40.xyz」のアクセスがあったら「http://localhost:8081」のコンテンツを返します。
サーバの設定を単純にもう一つ追加しているだけなので簡単ですね。
サーバ名ではなくポート番号で振り分ける場合
自宅でテストする際にサーバ名ではなくポート番号で振り分けたいことがあったので、その例になります。
server{
listen 192.168.0.10:8080;
server_name 192.168.0.10;
proxy_redirect off;
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;
location / {
proxy_pass http://localhost:8080;
}
}
server{
listen 192.168.0.10:8081;
server_name 192.168.0.10;
proxy_redirect off;
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;
location / {
proxy_pass http://localhost:8081;
}
}
参考にした記事によっては「proxy_set_header」の設定が異なっていたので、これについては別途確認する予定です。