アップストリームを介してnginx + nodejsを次のようにしています:
server {
listen 0.0.0.0:80;
upstream app_nodejs {
server 127.0.0.1:3000;
}
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://app_nodejs;
proxy_redirect off;
}
}
ブラウザーで mysite.com にアクセスすると、80 ポート経由で入力し、3000 にルーティングされます。ただし、www.mysite.com:3000 のように、3000 ポート経由でアプリケーションに直接アクセスできます。この場合、proxy_pass は使用しません。
proxy_pass 経由ではない 3000 ポートへのアクセスを防ぐにはどうすればよいですか?
編集: http モジュールを使用してアプリケーションを起動していますが、このアプローチをどのように使用できますか?:
http.createServer(express()).listen(3000, function(req, res) {
});