したがって、ポート 8081 で実行されている nodejs アプリがあります。
http://mysite.com:8081/
にアクセスするだけで簡単にアクセスしたいhttp://mysite.com/
ので、expressjsで仮想ホストをセットアップします。
app.use(express.vhost('yugentext.com', app));
それは簡単すぎるようで、うまくいきません。Expressjs vhosts の仕組みについて混乱していますか?
これらを高速でうまく実行したい場合、問題は高速コードではなく、DNS設定に起因します。
次のようにドメインに を追加A entry
します。
127.0.0.1 localhost *.mysite.com *.www.mysite.com
DNS の伝播を待つ必要があります。(数秒から数時間)。
Apache または他の Web サーバーがポート 80 で仮想ホストを実行している場合、競合が発生します。
そして他の方法:
nodejs と Express は、apache とnginx (vhost/proxy のもの)が提供するパフォーマンスとはかけ離れています。
Nginx>Apache (nodejs の方が適しています)
mysite.com
からへのプロキシを作成しますmysite.com:8080
これらの方法で、nodejs と Express は UI、メソッド、httpserver などを処理し、Nginx または Apache はプロキシ、仮想ホスト、および静的アセットの管理を非常に高速に処理します。
ここでこれらの構成を確認してください: Nginx と複数の Meteor/Nodejs アプリのトラブル
私はあなたがやっていると思います app.listen(8081)
。あなたはやっているはずですapp.listen(80)
。Express vhosts の経験はありませんが、この単純なユース ケースでは必要ありません。
upstream node-apps {
server host_ip_1:3000;
server host_ip_2:3000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://node-apps/;
proxy_redirect off;
}
}
これは私のnginx構成です。プロキシは複数のサーバーを渡します。頑張ってください:p