こんにちは、プログラマー 歴半年の新米エンジニアです。
現在ネットワーク周りの学習の一環として自宅サーバーを構築し、webサーバーソフトとしてApacheとNode.jsを入れているのですが、不明な点がいくつか出てきてモヤモヤしているので伺いたい次第です。
サーバーのOSはcentos7です。
モヤモヤ1つ目
現在テストでNode.jsを使用し、ポートを3000でlistenして簡単な静的HTMLを返すようにし、WANから見ることができています。
ここで今度はApacheのドキュメントルートにディレクトリを作成し、そこにHTMLを配置、ポートはデフォルトの80を使用、httpdを起動してみたのですが、WANからアクセスするとブラウザには
[504] Gateway Timeout
が表示されます。
つまり
Node.jsの3000番へのアクセスには
http://example.com:3000 でアクセス
成功
Apacheの80番へのアクセスには
http://example.com/testdir でアクセス
[504] Gateway Timeout
という状態です。
ルーターのNAPTの設定は80と3000ともに宛先を自宅サーバー機のプライベートIPに指定しています。
この解決方法を探していますが、私が見つけることができたのはリバースプロキシを使用する方法でした。
モヤモヤ1つ目での質問は、この問題の解決にはリバースプロキシを使用する方法だけなのか?ということです。
#モヤモヤ二つ目
このテストをしていて気になったのは、別々のwebサーバーアプリではなく同一のwebサーバーアプリ内で2つの異なるwebページを運用する際です、つまり
Apache Apache
Node.js Node.js
の組み合わせです
この場合を調べるとバーチャルホストという方法が出てくるのですが、このバーチャルホストという手法で問題は解決出来るのでしょうか?
私の質問は上記の2点です。
出先の為、今の情報はこれくらいですがもしも足りないようであれば自宅で追記致します。
質問が下手で申し訳ありませんが皆さんのお力を貸してください。