ノード モジュールnode-http-proxyを使用して、いくつかの WordPress サイトで特定の仮想ホストを Apache にリダイレクトしています。私のノード「サーバー」はポート 80 でリッスンし、Apache がリッスンしている SOME_OTHER_PORT にリダイレクトします。
正常に動作します (ユーザーからの提案に従って、WordPress の設定を SOME_OTHER_PORT を考慮するように変更すると)。ただし、ポート番号は、WordPress サイトのすべてのページの URL に常に含まれています。これらの醜いポート番号を見る必要がないように、これを行う他の方法はありますか?
セットアップを大幅に変更しなければこれが可能になるとは想像できませんが、質問する価値があると思いました。
ノードでのプロキシに使用するコードは次のとおりです。
// Module dependancies
var httpProxy = require('http-proxy'),
express = require('express')(),
connect = require('connect');
// Http proxy-server
httpProxy.createServer(function (req, res, proxy) {
// Host Names and Ports
var hosts = [
'www.some-website.co.uk'
];
// Ports
var ports = [
8000
];
var host = req.headers.host;
var port = hosts.indexOf(host) > -1 ? ports[hosts.indexOf(host)] : 9000;
// Now proxy the request
proxy.proxyRequest(req, res, {
host: host,
port: port
});
})
.listen(80);
ポート80
は、すべてのトラフィックが来る場所です。ポート8000
は、Apache サーバーの背後にある潜在的な WordPress サイトです。Port9000
は、別の場所でリッスンしている可能性のある Node アプリです。
これが見掛け倒しの方法であるかどうかについての洞察も歓迎します。