1. ホーム
  2. apache

Node.jsを80番ポートで実行するにはどうしたらいいですか?

2023-07-22 07:10:20

質問

私の目的は、ポート 80 で Node.js を実行することです。これは、他のポートからのトラフィックを許可しない特定のネットワークから node.js がブロックされていることを発見したためです。

これを行う最良の方法は、Node.js を通して Apache をプロキシングすることであるように思われます。私は node-http-proxy を使ってみましたが、うまくいきませんでした。

私が使っているコードはこちらです。

var util = require('util'),
    http = require('http'),
    httpProxy = require('http-proxy');

httpProxy.createServer(9000, 'localhost').listen(80);

http.createServer(function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
  res.end();
}).listen(9000);

しかし、80番ポートで "アドレス使用中" というエラーが出続けています。私は何か間違ったことをしているに違いありません。

node-http-proxyを使用してnode.jsを通してApacheをプロキシするにはどうすればよいですか?これは、ポート 80 で node.js を実行できるようになりますか?そして、node-http-proxyは、これを達成するための最良の方法ですか?

ありがとうございます。

どのように解決するのですか?

実行するサーバーのIPを2つ用意する必要があります。 Apacheは80番ポートにバインドされた1つのipを持ち、そしてnode.jsは80番ポートにバインドされたもう1つのipを持つのです。

nodeを使用し、そのlistenディレクティブは2つの値を持っています 例: .listen(80, NODEJS_IP or DNS NAME);

他のアドバイスもあります。

イベント化されていないので、私はnodejsでapacheを使用しないでしょう。 だから、これは本当にお勧めできません。 私は実際にNGINXを使用することに目を向けます。