Last updated at
warning
この記事は最終更新から3年以上経っています。情報が古くなっている可能性が高いです。
仕事でAzureのAppService(旧WebApps)を使い、Nodeで普通のExpressサーバを作っていた。 しかし、試しにデプロイしてみるとサーバが立ち上がらず、デプロイのログに以下のようなエラースタックが出力されていた。
Error: listen EACCES 0.0.0.0:80
AzureWebAppsの仕組みはIISがフロントに立って80
と443
ポートでリクエストを受け付け、サーバが立っていればそこにプロキシ、静的サイトの場合はファイルを配信する、というもの。
そのためAzureWebAppsで80ポートをlistenしてはいけない(できない)。
環境変数PORT
にサーバ用のポートが用意されている為、そちらを使う。
サンプルとしてAzureWebApps上で動くHelloWorldのExpressサーバのコードを書いておく。
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello, World!')
})
app.listen(process.env.PORT || 80)