特定のサブドメインを ubuntu AWS EC2 仮想サーバーの特定のポートにリダイレクトしようとしています。すでにDNSで試しましたが、次のトピックに基づいてうまくいきません。ノードhttpプロキシを使用するデフォルトルート? コンピューターで HTTP トラフィックをログに記録するために node.js http-proxy を使用するにはどうすればよいですか? 、ロギング付きのNode.JSプロキシサーバーを作成しようとしていました。そうは言っても、少し混ぜ合わせて(Node.JSは初めてで、まだ学習中です)、次のスクリプトを作成しました。
var httpProxy = require('http-proxy');
var PORT = 80;
logger = function() {
return function (request, response, next) {
// This will run on each request.
console.log(JSON.stringify(request.headers, true, 2));
next();
}
}
var options = {
// this list is processed from top to bottom, so '.*' will go to
// 'http://localhost:3000' if the Host header hasn't previously matched
router : {
'dev.domain.com': 'http://localhost:8080',
'beta.domain.com': 'http://localhost:8080',
'status.domain.com': 'http://localhost:9000',
'health.domain.com': 'http://localhost:9000',
'log.domain.com': 'http://localhost:9615',
'^.*\.domain\.com': 'http://localhost:8080',
'.*': 'http://localhost:3000'
}
};
// Listen to port 80
httpProxy.createServer(logger(), options).listen(PORT);
console.log("Proxy server started, listening to port" + PORT);
さて、次のエラーが発生し続け、これを機能させる方法がわかりません。
$node proxyServer.js
Proxy server started, listening to port80
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at ProxyServer.listen (/home/ubuntu/QuantBull-Project/node_modules/http-proxy/lib/http-proxy/index.js:130:16)
at Object.<anonymous> (/home/ubuntu/QuantBull-Project/proxyServer.js:28:43)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
つまり、ポート 80 で http 要求を受信しようとしています。それが sub1.domain.com から来た場合は portA にリダイレクトされ、sub2.domain.com から来た場合は同じ IP から portB にリダイレクトされます。アドレスと両方のポートが公開されています。
誰かがこれを修正する方法を説明し、なぜそれが起こるのか説明できますか?