質問
Godaddy 上の 1 つのホストは複数の Web サイト (PHP Web サイトなど) をホストできますが、Node.js Web サイトを Godaddy 上の Web サイトの 1 つとして使用できますか?
仮想ホストの実装
この質問に答えるには、まず仮想ホストの実装を分析する必要があります。 apacheを例に挙げます。
Apache サーバーでは、仮想ホストは Apache 自体によってサポートされています (https://httpd.apache.org/docs/current/vhosts/ で確認できます)。複数の Web サイトをホストするように Apache 構成ファイルを構成するだけです。同じホスト上にデプロイされます。
Node.js は他の Web サイトと同時に仮想ホストにデプロイできますか?
まず第一に、Node.js には独自のサーバーが付属していることを知っておく必要があります (これは、Apache、nginx などの CGI スクリプトをサポートするサーバー上で実行される単なる CGI スクリプトである PHP とは異なります)。 )。したがって、Node.js を Godaddy の仮想ホスト上で実行したい場合は、Godaddy の仮想ホスト サーバー構成を使用することはできません。仮想ホストにNodejsがインストールされている場合でも、cPanelのnodejsフォルダーに新しいドメイン名を指定しますか?ただし、このメソッドはホスト サーバーが CGI スクリプトを実行する方法でもあるため、コードは実行されません。また、Node.js は CGI スクリプトではなく、独自のサーバーが付属しているため、明らかにホスト サーバーでは実行できません。したがって、単純かつ直接的な方法で Node.js を仮想ホストにデプロイすることは現実的ではありません。
仮想ホストに Node.js をデプロイする型破りな方法
仮想ホストに Node.js をデプロイする必要がある場合はどうすればよいですか?方法はありますが、型破りなので使用しないほうがよいでしょう。
方法 1:
CGI-Node を使用します。 CGI-Node は PHP と同様に CGI スクリプトとして実行できます。Godaddy にはすでに設定に関するチュートリアルがありますが、実際には PHP を使用したコーディング方法のシミュレーションです。 Node.js が付属しているということは、Express フレームワークが利用できない可能性があることを意味します。エンコード方法を変更するこの方法は、明らかに私たちの状況には適していません。
方法 2:
サーバープロキシを使用します。 Apache サーバー自体はプロキシ機能をサポートしており、特定のリクエスト リンクを別のリンクに送信して処理し、処理結果を返すことができます (参考: http://stackoverflow.com/questions/9831594/apache-and-node-js) - 同じサーバー上)。現時点では、仮想ホスト上でnode.jsを実行するだけで済みます。この方法で、仮想ホスト上に間接的にnode.jsをデプロイできます。しかし問題は、仮想ホストの Apache 構成ファイルをどのように構成するかということです。明らかにこれを行うのは困難です。 http://localhost:3000
下,然后在apache里配置把http://www.example.com/node
开头的链接全部代理给localhost:3000