0

Amazon EC2 で実行されます。コードは、express-generator によって自動的に作成されました。

アプリを起動するには、次のことを行う必要がありました。

sudo PORT=80 npm 開始

次に、14 行目を追加しました。

app.set('port', process.env.PORT || 80);

そして66

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));

これで、次のように言ってアプリを起動できます。

須藤npmスタート

Express サーバーはポート 3000 でリッスンしています。ブラウザーからアクセスできますが、なぜ 3000 なのか

http://pastebin.com/bwcBHZaa

パッケージ.json

{
  "name": "haha",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "express-generator": "^4.13.1",
    "jade": "~1.11.0",
    "kerberos": "file:kerberos",
    "mongodb": "^2.0.52",
    "morgan": "~1.6.1",
    "serve-favicon": "~2.3.0"
  }
}
4

1 に答える 1

0

私はちょうどひらめきのアイデアを思いつきました。これと同じことが何年も前に私に起こりました。

問題は、ポート 80 にバインドするのが非常に複雑なことです。

2 つのソリューションのどちらでも機能しますが、簡単にするために最初のソリューションをお勧めします。

  1. ニンクス

非常に単純な nginx 構成を使用して、ポート 3000 リクエストをポート 80 に「再ルーティング」できます。

#etc/nginx/sites-enabled/mysite.conf

server {
        listen 0.0.0.0:80;
        server_name www.mysite.com mysite.com;
        location /  {
                proxy_pass http://localhost:3000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }

}
  1. または、IpTables NAT 再ルーティングを使用できます。

https://glassonionblog.wordpress.com/2011/04/08/tomcat-redirecting-traffic-from-port-8080-to-80-using-iptables/


nginx を使用すると、複数の理由 (サーバーを再起動する場合など) により、一般的にうまく機能することがわかりました。サーバーを再起動すると、再起動時に ipTables をリロードする必要があります。これを自動化したい場合は、iptables-restore をインストールする必要があります。しかし、NAT 再ルーティング テーブルを使用して構成するのは厄介です。

nginx の使用は単純明快でした。

于 2015-12-29T01:55:04.657 に答える