Nginx
埠已在使用時的Nginx反向代理?
我正在嘗試使用基本身份驗證關閉埠(對於普羅米修斯的推送網關),所以不是 nginx 的大專家,所以有人可以給我和建議我哪裡錯了嗎?
我有 9091 埠,應該在 auth 前面從外部關閉。此埠正在被 pushgateway 使用
我目前的 nginx 配置:
events { } http { upstream prometheus { server 127.0.0.1:9090; keepalive 64; } upstream pushgateway { server 127.0.0.1:9091; keepalive 64; } server { root /var/www/example; listen 0.0.0.0:80; server_name __; location / { auth_basic "Prometheus server authentication2"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://prometheus; } } server { root /var/www/example; listen 0.0.0.0:3001; server_name __; location / { auth_basic "Pushgateway server authentication"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://pushgateway; } } }
所以基本身份驗證適用於:3001,但 9091 仍然打開。我試圖改變它的下一個方式:
server { root /var/www/example; listen 0.0.0.0:3001; listen 0.0.0.0:9091; server_name __; location / { auth_basic "Pushgateway server authentication"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://pushgateway; } }
並且工作正常,但是…… pushgateway 無法開始嘗試監聽:9091 並拋出“bind:address is already in use”。我怎樣才能避免它並將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"
您目前的 nginx 配置非常適合此目的。
您需要更改 Pushgateway 配置,以便它偵聽
127.0.0.1
而不是0.0.0.0
.如果找不到,則需要添加防火牆規則,阻止從 WAN 端到埠的流量。