Verhindern, dass Nginx auf allen IPs lauscht?

Verhindern, dass Nginx auf allen IPs lauscht?

Ich habe eine Haupt-IP und eine sekundäre IP. Die sekundäre IP ist für einen speziellen Go-Webserver gedacht, der aus einem für diese Frage irrelevanten Grund nur auf dieser IP lauscht.

Leider funktioniert es nicht, da Nginx beschlossen hat, zuzuhören aufalleIPs und daher kann mein benutzerdefinierter Webserver nicht an diese IP und diesen Port gebunden werden. Ich kann keinen anderen Port verwenden, es muss dieser Port sein ... deshalb habe ich für diesen ausschließlichen Zweck eine zweite IP-Adresse gekauft.

Wie bringe ich Nginx dazu, nur auf der Haupt-IP zu lauschen, statt auf allen IPs?

Ich verwende Ubuntu 18.04.

Antwort1

Hier ist eine Beispielkonfiguration nur für http. Bei HTTP gibt es keinen großen Unterschied:

server {
  #This is the important listen block to specify:
  listen      <ip-address>:80;
  server_name example.com;
  root        /var/www/html;
  index index.html index.php;

  location / { 
    try_files $uri $uri.html $uri/ /index.html;
  }

  error_page 404 /404.html;
}

Wenn Ihre Konfiguration dies umfasst, können Sie es bei Bedarf entfernen, um IPv6 zu deaktivieren:

listen [::]:80 default_server

Wenn Sie es dann mit netstat testen:

test@computer:/etc/nginx/conf.d# netstat -na | grep -i "Listen" | grep ":80"
tcp        0      0 <ip-address>:80       0.0.0.0:*               LISTEN  

verwandte Informationen