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

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

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

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

解決済

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

tensaikumabouzu
tensaikumabouzu

総合スコア45

nginx

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

1回答

0リアクション

0クリップ

402閲覧

投稿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ファイルを記述すれば、「実現したいこと」はできますか?

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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の追加もしてみたのですが、挙動の変化はありませんでした。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

nginx

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