я использую Меркурий hub 0.13, на моей машине для разработки все работает нормально, но на моем тестовом сервере хаб продолжает пытаться привязаться к порту 80, что приводит к ошибке, так как nginx уже работает на порту 80.
run: загрузка исходной конфигурации: загрузка новой конфигурации: http модуль приложения: start: tcp: прослушивание :80: прослушивание tcp :80: bind: адрес уже используется
Я запускаю концентратор следующей командой:
MERCURE_PUBLISHER_JWT_KEY=$(cat publisher.key.pub) \
MERCURE_PUBLISHER_JWT_ALG=RS256 \
MERCURE_SUBSCRIBER_JWT_KEY=$(cat publisher.key.pub) \
MERCURE_SUBSCRIBER_JWT_ALG=RS256 \
./mercure run -config Caddyfile.dev
Caddyfile.dev выглядит следующим образом:
# Узнайте, как настроить Mercure.rocks Hub, на странице https://mercure.rocks/docs/hub/config.
{
{$GLOBAL_OPTIONS}
}
{$SERVER_NAME:локальный хост:3000}
журнал
маршрут {
redir / /.well-known/mercure/ui/
кодировать zstd gzip
Меркурий {
# Транспорт для использования (по умолчанию Bolt)
transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
# Ключ JWT издателя
publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
# JWT-ключ подписчика
subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
# Разрешающая конфигурация для среды разработки
cors_origins *
публикация_источников *
демо
анонимный
Подписки
# Дополнительные директивы
{$MERCURE_EXTRA_DIRECTIVES}
}
ответить /healthz 200
ответить "Не найдено" 404
}
Когда я предоставляю SERVER_NAME в качестве переменной среды без домена, ИМЯ_СЕРВЕРА=:3000
, концентратор фактически запускается на порту 3000, но работает в режиме http, что позволяет только анонимные подписки, а это не то, что мне нужно.
Сервер:
Операционная система: CentOS Stream 8
Ядро: Linux 4.18.0-383.el8.x86_64
Архитектура: x86-64
Полный вывод при попытке запустить концентратор Mercure:
10.05.2022 04:50:29.605 ИНФОРМАЦИЯ с использованием предоставленной конфигурации {"config_file": "Caddyfile.dev", "config_adapter": ""}
10.05.2022 04:50:29.606 ПРЕДУПРЕЖДЕНИЕ. Входные данные не отформатированы с помощью «caddy fmt» {«adapter»: «caddyfile», «file»: «Caddyfile.dev», «line»: 3}
2022/05/10 04:50:29.609 ИНФОРМАЦИЯ Конечная точка администратора администратора запущена {"адрес": "tcp/localhost:2019", "enforce_origin": false, "origins": ["localhost:2019", "[::1 ]:2019", "127.0.0.1:2019"]}
2022/05/10 04:50:29.610 ИНФОРМАЦИЯ http включение автоматического перенаправления HTTP->HTTPS {"server_name": "srv0"}
10.05.2022 04:50:29.610 INFO tls.cache.maintenance запустил фоновое обслуживание сертификата {"cache": "0xc0003d6150"}
2022/05/10 04:50:29.627 INFO tls очистка хранилища {"description": "FileStorage:/root/.local/share/caddy"}
2022/05/10 04:50:29.628 ИНФО tls закончил уборку складских помещений
10.05.2022 04:50:29.642 ИНФОРМАЦИЯ корневой сертификат pki.ca.local уже является доверенным для системы {"path": "storage:pki/authorities/local/root.crt"}
2022/05/10 04:50:29.643 INFO tls.cache.maintenance остановил фоновое обслуживание сертификата {"cache": "0xc0003d6150"}
run: загрузка исходной конфигурации: загрузка новой конфигурации: http модуль приложения: start: tcp: прослушивание :80: прослушивание tcp :80: bind: адрес уже используется