TL;TR
Debian系のnginxのパッケージにstream
モジュールが含まれていないことが原因
sudo apt install libnginx-mod-stream
状況
nginxをロードバランサーとして使うために、以下のような設定をnginx.conf
に追加した。
stream {
upstream controller_backend {
server 192.168.8.11:6443;
server 192.168.8.12:6443;
server 192.168.8.13:6443;
}
server {
listen 6443;
proxy_pass controller_backend;
}
}
nginxを実行すると、以下のようなエラーが発生する。
sudo systemctl restart nginx
> Job for nginx.service failed because the control process exited with error code.
> See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
nginx.conf
の構文テストを実施してみると、
sudo nginx -t
> unknown directive "stream" in /etc/nginx/nginx.conf:84
と表示される。
(もし異なるエラーなら、本記事の内容が原因ではない)
stream
を認識できるように、追加でパッケージを入れたら解決。