я пытаюсь закрыть порт с базовой аутентификацией (для pushgateway prometheus), поэтому не большой специалист в nginx, так что может кто-нибудь, пожалуйста, дайте мне совет, где я ошибаюсь?
У меня есть порт 9091, который должен быть закрыт снаружи перед авторизацией. Этот порт используется pushgateway
Моя текущая конфигурация nginx:
События { }
http {
вверх по течению Прометей {
сервер 127.0.0.1:9090;
поддержка активности 64;
}
upstream pushgateway {
сервер 127.0.0.1:9091;
поддержка активности 64;
}
сервер {
корень /var/www/пример;
слушать 0.0.0.0:80;
имя сервера __;
место расположения / {
auth_basic "Аутентификация сервера Prometheus2";
auth_basic_user_file /etc/nginx/.htpasswd;
прокси_пароль http://prometheus;
}
}
сервер {
корень /var/www/пример;
слушать 0.0.0.0:3001;
имя сервера __;
место расположения / {
auth_basic "Аутентификация сервера Pushgateway";
auth_basic_user_file /etc/nginx/.htpasswd;
прокси_пароль http://pushgateway;
}
}
}
Таким образом, базовая аутентификация отлично работает для: 3001, но 9091 все еще открыт. Я попытался изменить его следующим образом:
сервер {
корень /var/www/пример;
слушать 0.0.0.0:3001;
слушать 0.0.0.0:9091;
имя сервера __;
место расположения / {
auth_basic "Аутентификация сервера Pushgateway";
auth_basic_user_file /etc/nginx/.htpasswd;
прокси_пароль http://pushgateway;
}
}
И работает нормально, но... pushgateway не может запуститься, так как пытается прослушать :9091 и выдает "bind:адрес уже используется". Как этого избежать и скрыть pushgateway перед nginx?
Конфигурация Pushgatewa:
ExecStart=/usr/local/bin/pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.file="/tmp/metric.store" -- persistence.interval=5m --log.level="info" --log.format="logger:stdout?json=true"