Привязка BPMSoft к привилегированным портам в
Linux
Симптомы
При попытке перенастроить приложение BPMSoft на использование порта 443 (стандартный HTTPS‑порт) можно столкнуться с ошибкой при запуске:
2025-10-10 17:54:44,086 [.NET TP Worker] FATAL Microsoft.AspNetCore.Server.Kestrel ExecutionContextCallback - Unable to bind to 'https://::443' on config reload.|System.Net.Sockets.SocketException (13): Permission denied
Причина
В Linux порты ниже 1024 считаются привилегированными. Для привязки к ним требуются права суперпользователя (root или sudo). Запуск приложения от имени обычного пользователя без повышенных привилегий приводит к отказу в доступе.
Решение
Рекомендуемым решением является настройка обратного прокси‑сервера (например, HAProxy). Он будет:
- слушать порт 443 (с правами root);
- перенаправлять запросы на внутренний порт приложения (например, 5002), которое запускается от обычного пользователя.
Настройка HAProxy
- Обновите список пакетов:
sudo apt update
- Установите HAProxy:
sudo apt install haproxy
- Включите и запустите сервис:
sudo systemctl enable haproxy sudo systemctl start haproxy
Подробнее: Установка HAProxy.
- Убедитесь, что BPMSoft слушает порт 5002 (замените example.com на ваш домен/IP):
curl https://example.com:5002
- Создайте файл конфигурации:
sudo nano /etc/haproxy/haproxy.cfg
- Вставьте следующий текст для минимальной настройки HAProxy:
frontend main
bind :443 ssl crt /etc/ssl/private/your_cert_and_key.pem
default_backend app
backend app
server app1 127.0.0.1:5002 check
Укажите корректные пути к SSL‑сертификату и приватному ключу в формате pem (вместо /etc/ssl/private/your_cert_and_key.pem). Подробнее: Настройка конфигурации HAProxy.
- Проверьте синтаксис конфигурации:
sudo haproxy -f /etc/haproxy/haproxy.cfg -c
Сообщение Configuration file is valid означает, что конфигурация корректна.
- Если ошибок нет, перезагрузите HAProxy:
sudo systemctl reload haproxy
- Проверьте работоспособность, открыв BPMSoft в браузере (замените example.com на ваш домен/IP):
https://example.com:443
Рекомендуем изучить
Общие принципы диагностики проблем при развертывании BPMSoft
Развертывание BPMSoft на Linux