SongShuA

SongShuA

胸中梦黄粱,手握自在心 一个充满想法的网络安全从业人员 A person with dreams in their heart and the ability to control their own destiny, who is a creative professional in the field of cybersecurity.
github

初めての単一ドメイン、単一ポートでの複数サービスのウェブ

最近、このような状況に何度か遭遇しました。1 つのドメイン、1 つのポートですが、異なる拡張子のファイルが存在します。

当初、私はポートの再利用を考えました。実際には使用したことはありませんが、この用語を見るだけで機能的には問題ないとわかります。しかし、一般的な開発者や運用スタッフは技術力が高くないため、ポートの再利用を使用しない可能性が高いです。昨日、あるグループで先生が記事のスクリーンショットを投稿し、その中でこの状況について言及し、逆プロキシ技術を使用している可能性があると述べていました。その時に私はようやく気づきました。

逆プロキシ ==== リバースプロキシ

一般的に、運用スタッフのほとんどはこのものを知っています。これは比較的基本的な VPN 技術の一種です。以前はこのものについて大まかに知っていただけでしたが、今回の機会に学ぶことができました。

まず、リバースプロキシの概念について説明します。2 つの図を示します

フォワードプロキシ

リバースプロキシ

これらの 2 つの図は非常に明確ですが、理解できない場合は、簡単に説明します。通常のプロキシ(フォワード)は、ユーザーをプロキシサーバーに変えてリソースにアクセスさせます。リバースプロキシは、サーバーがリソースをユーザーに提供するために使用します。一つはユーザーを外に出すためのものであり、もう一つはリソースを内部に入れるためのものです。

リバースプロキシについて話すと、Nginx を取り上げなければなりません。一般的に、リバースプロキシサーバーはこれを使用しますが、Apache も使用できますが、あまり多くの人が使用していないようです。

リバースプロキシの機能は、Nginx の設定ファイルで設定されます。Nginx/conf/nginx.conf

このファイルの内容は、次の構造で理解できます。

http {
	server {
	
	}
	}

http は HTTP サーバーに関連するものであり、server は有効になっているサービス機能モジュールです。したがって、私たちは server 内で設定を行う必要があります。

image-20210813203043769

上の図のように。

server はポート 80 をリッスンします

サービス識別名はバインドされたドメインです

location はローカル関連の設定であり、パスや正規表現を後に続けることができます。ここでは 2 つのルールを書いていますが、それぞれ 2 つの異なる拡張子を判断しています。

したがって、この設定の機能は次のとおりです:www.ttt.com でこのサーバーにアクセスする場合、アクセス拡張子を判断します。html の場合、888 ポートのサービスにリバースプロキシを行い、txt の場合は 889 ポートのサービスにリバースプロキシを行います。(2 つのポートは異なるウェブサイトを区別するためのものです。私は 2 つのサーバーを持っていないので、1 つのサーバーの 2 つのポートで区別するしかありません)

location の設定ルール

https://juejin.cn/post/6908623305129852942

y4er 先生は、ローカルウェブサービス + リバースプロキシの可能性もあると言っています。このアイデアでもこの機能は実現できるかもしれませんが、私は疑問を持ち続けています。なぜなら、設定ファイル上でいくつかの競合があるように思えるからです。ウェブサービスはおそらく http レイヤーで直接設定されるべきであり、リバースプロキシは server レイヤーで設定されるべきです。優先順位や上書きについては言及しません。location のルールは、このレイヤーでのみ有効であり、上位のレイヤーでは機能しないはずです。

もちろん、ここまでしか試していませんし、確信も持っていません。推測に過ぎません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。