質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

1回答

1103閲覧

nginxのリバースプロキシの設定について

tensaikumabouzu

総合スコア45

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2022/08/25 03:16

編集2022/08/26 01:42
  • 実現したいこと

https://node:443/test へブラウザからアクセスした際にブラウザに表示されるURLは
https://node:443/test のままでhttp://172.30.80.100 のWeb画面を表示すること。

  • 実現したい理由

クライアントからは、172.30.80.100(管理用サーバー)に直接アクセスさせたくない、あくまでnodeへのアクセスにしたいため。

  • 困っていること

https://node:443/test へブラウザからアクセスするとURLがhttp://172.30.80.100 に変わってしまいhttp://172.30.80.100 のWeb画面を表示すること。

  • nginxのconfファイルの設定(部分抜粋)
server { server_name node; listen 443 ssl; listen [::]:443 ssl; location /test { proxy_pass http://172.30.80.100; } }
  • 補足

基本的なリバースプロキシの思想から外れますが、現状検証環境のため、
クライアントから172.30.80.100へのアクセスはできます。(これが原因の可能性もある?)

  • curlの結果
C:\Users\Sysg> curl -v https://node:443/test * Trying 172.30.80.91:443... * Connected to node (172.30.80.91) port 443 (#0) * schannel: disabled automatic use of client certificate * ALPN: offers http/1.1 * ALPN: server accepted http/1.1 > GET /test HTTP/1.1 > Host: node > User-Agent: curl/7.83.1 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 301 Moved Permanently < Server: nginx/1.18.0 (Ubuntu) < Date: Fri, 26 Aug 2022 01:29:15 GMT < Content-Type: text/html < Content-Length: 162 < Connection: keep-alive < Location: https://node/ < <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> * Connection #0 to host node left intact

どのようにconfファイルを記述すれば、「実現したいこと」はできますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2022/08/25 04:15

どういう経緯でこれを行いたいのかは質問文内に書いておいた方がいいかもしれません。使い方次第では色んな事に悪用できる話にもなるので、その辺の説明がないと回答しにくい質問のように見えます。
tensaikumabouzu

2022/08/25 04:39

ありがとうございます。実際のIPに変更したのと、実現したい理由を追記しました。
hoshi-takanori

2022/08/25 04:43

理由になってません。というか、重要なのは 172.30.80.100 が自分が管理する (または、そのように利用する権限を与えられた) サーバーかどうかでしょうね…。
AbeTakashi

2022/08/25 06:13

最初と比べてかなり質問の意味合いが変わりましたね・・・ 悪用云々は置いておいて、172.30〜ってプライベートIPアドレスでリバースプロキシ入ってるサーバから普通にアクセスできるんですよね? その設定なら普通に望み通りに動きそうな気もしますが。443なので証明書の設定が必要だったりするのかな? listenを80にして単純にhttpでアクセスしたらどうなるでしょうか?
tensaikumabouzu

2022/08/25 08:34

リバースプロキシも172.30.80.99の同一セグメント上に設置されていて、普通にアクセスができます。 443のためサーバー証明書の設定はしております。 ポート80にして、httpアクセスさせてみたのですが、同じ挙動です。 何が原因と考えられるでしょうか?
hoshi-takanori

2022/08/25 12:00 編集

172.30.〜 はプライベートアドレスでしたね。失礼しました。 「URLがhttp://172.30.80.100 に変わってしまい」ってことは管理用サーバー側でリダイレクトしてるのかも。curl -v https://node:443/test したらどうなりますか? また、nginx のリバースプロキシ設定には proxy_set_header Host $host; などと書くのが一般的のような…。(書かなくても動く気もしますが…。) https://qiita.com/hyakt/items/c0aa8005d9a9700fbe45
tensaikumabouzu

2022/08/26 01:36

ありがとうございます。 管理用サーバー側の設定を確認してみます。 curl -vの結果を追加しました。 proxy_set_headerの追加もしてみたのですが、挙動の変化はありませんでした。
guest

回答1

0

自己解決

confファイルを一から書き直すことで解決いたしました。
お騒がせしました。

投稿2022/08/31 10:33

tensaikumabouzu

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問