2つのタスクを同じポートでリッスンさせることはできません。HTTPはデフォルトのポート80でリッスンし、HTTPSはデフォルトのポート443でリッスンします。それに応じて転送するようにHAProxyプログラムを管理する必要があります。
次のように構成を設定することをお勧めするこの気の利いたページを見つけました。
グローバル
統計ソケット./haproxy.statsレベル管理者
フロントエンドft_http
バインド:80
モードhttp
default_backend bk_http
フロントエンドft_https
バインド:443
モードtcp
default_backend bk_https
バックエンドbk_http
モードhttp
バランスラウンドロビン
srcテーブルに固執するbk_https
default-server inter 1s
サーバーs1192.168.1.1:80チェックID1
サーバーs2192.168.1.2:80チェックID2
バックエンドbk_https
モードtcp
バランスラウンドロビン
スティックテーブルタイプIPサイズ200k有効期限30m
srcに固執する
default-server inter 1s
サーバーs1192.168.1.1:443チェックID1
サーバーs2192.168.1.2:443チェックID2
上記の構成でNode.jsポートが80と443に設定されていることに注意してください。Node.jsには管理者権限がないため、次のように機能するようにポートを編集することをお勧めします。
バックエンドbk_http
モードhttp
バランスラウンドロビン
srcテーブルに固執するbk_https
default-server inter 1s
サーバーs1192.168.1.1:8000チェックID1
サーバーs2192.168.1.2:8000チェックID2
バックエンドbk_https
モードtcp
バランスラウンドロビン
スティックテーブルタイプIPサイズ200k有効期限30m
srcに固執する
default-server inter 1s
サーバーs1192.168.1.1:8001チェックID1
サーバーs2192.168.1.2:8001チェックID2
また、Node.jsコードを次のように変更する必要があります。
https.createServer(api.credentials、api.server).listen(8001);
http.createServer(api.server).listen(8000);
私はHAProxyに精通していないので、オフになっている可能性があります。