最近の多くのシナリオでは、Webプロジェクトをホストして実行するためにVPSホストを申請します。私も例外ではありません。使用するために03 VPSを購入しました。使用プロセス中、問題に直面しています。つまり、同じタイプのサーバー環境が問題ありません。しかし、3種類のサーバープロジェクトが1つのPHP、1つのASP、1つのJSPと共存する場合、どのようにポート80を割り当てる必要がありますか?商業的なWWW Webサイトは多くの場合、ポート80のみを占めることができるためです。もちろん、インターフェイスなどのサービスのみを行う場合、他のポートを使用してもポート80と矛盾しません。多くの開発者はポート80の問題に直面し、実際の状況はコストで制限されます。プロジェクトだけでVPSを購入することは経済的ではなく、費用対効果が高くなく、管理するのに便利ではないためです。したがって、ポート80を提供しながら複数のサーバーに配布する方法を慎重に検討し、異なるホストがそれぞれのWebプロジェクトを実行できるようにします。
親愛なる、この要件を実現することはできますか?はい、これは「マジックテクノロジー」や複雑なテクノロジーではありません。ネットワークサービスの「逆プロキシ」を理解しているのではないかと思いますが、機能の1つはポートの分布を完了することです。ドメイン名を配布するルートとして使用することもできます。AA.comドメイン名で要求された任意は、実行のためにPHPポート82に配布されます。 BB.comドメイン名によって要求されたものは、実行のためにASPポート83に配布されます。 ... 等々。もちろん、ここのポートは指示のためだけです。自由に構成できます。とにかく、ポート80から受け取ったリクエストは最初に処理され、次に配布されます。レイマンの用語では、逆プロキシは左手を右手に変えています。
逆プロキシが言及されるたびに、人々は通常Nginxについて考えますが、今日は有名なNginxを無視し、シングルスレッドループとイベントループも使用するサーバー側の兄弟であるNodejsを使用します。まず第一に、ノードはnginxではなくサーバープログラミングにJSを使用して構成またはLUAを書き込みます。これは私の好みに沿っています。第二に、私はノードに精通しており、あらゆる面で構成する方が簡単です。
この関数を完了するノード-HTTP-Proxyパッケージ。ダウンロードしてインストールするには、入力してください。
npmインストールhttp-proxy
インストールが完了したら、新しいproxy.jsファイルを作成して入力します。
var http = require( 'http')、httpproxy = reques( 'http-proxy'); //新しいプロキシサーバーオブジェクトvar proxy = httpproxy.createproxyserver({}); 'Content-Type': 'Text/Plain'}) //各リクエストで、プロキシ.web(req、res config)メソッドを呼び出して配布を要求するカスタムサーバーを作成し、 `proxy.web()`をプロキシに呼び出します//オプションに渡されたターゲットへのWeb要求// `proxy.ws()`を使用することもできます。 //ここでは、リクエストを処理してから、リクエストをプロキシできますReq.Connection.RemoteAdDress))プロキシサーバーを使用するコストについて話す場合、より多くのリソースを消費することなく、より多くのCPU操作を消費する可能性があります。
使用法の問題:フォルダーproxy.webを指定できません(req、res、{ターゲット: 'http://vevb.com:81/foo/'});