Nginx arbeitet automatisch für das WWW, auch ohne Konfiguration

529
mikicz

Nginx bedient meine Website ohne jegliche Konfiguration von www. sowie die Domain, die ich eingestellt habe server_name. Ich habe keine Ahnung, wie das passiert, aber ich möchte das deaktivieren.

Bedeutung: Ich habe einen Server für konfiguriert subdomain.example.com, der funktioniert gut, www.subdomain.example.comfunktioniert aber auch!

Das ist mein Nginx-Conf:

worker_processes 1;  events { worker_connections 1024; }  http { include mime.types; default_type application/octet-stream;  sendfile on;  keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; } 

Und dann eine Beispieldatei von /etc/nginx/conf.d/:

server { listen 80; server_name subdomain.example.com;  location / { proxy_pass http://656.655.665.655:3277;  }  } 

Ich habe geprüft und ich habe keine Platzhalter in den anderen Konfigs.

Wenn ich hinzufüge:

server { server_name www.subdomain.example.com; return 301 $scheme://subdomain.example.com$request_uri; } 

Das funktioniert und www. wird umgeleitet, aber ich mag diese Lösung nicht. Aus verschiedenen Gründen möchte ich einfach das WWW deaktivieren. vollständig.

Irgendwelche Ideen?

1
Ich denke, es ist wahrscheinlich, dass Ihr Browser dies tut, da ich glaube, dass sowohl bei Chrome als auch bei Firefox einige Änderungen vorgenommen wurden, um das WWW zu "ignorieren". an eine URL angehängt. Ich persönlich denke, es ist eine dumme Idee, aber leider. Versuchen Sie, eine DNS-Suche für beide URLs durchzuführen, mit und ohne WWW. Die eine ohne sollte fehlschlagen, wenn Sie keine Wildcard haben. Wenn dies fehlschlägt, stört der Browser eindeutig. djsmiley2k vor 6 Jahren 0
@ djsmiley2k Ich glaube nicht, dass es das ist. Ich habe 'curl' ausprobiert und durchläuft noch immer, ohne www in nginx config zu erwähnen mikicz vor 6 Jahren 0

1 Antwort auf die Frage

0
harrymc

Diese Stack Overflow-Antwort schlägt vor, diesen Code zum Entfernen wwwvor einer Domäne zu verwenden:

if ($host ~* ^www\.(.*)$) { rewrite / $scheme://$1 permanent; } 

Beachten Sie, dass If Is Evil ist, soll aber funktionieren rewrite.

Das beantwortet meine Frage zwar nicht wirklich, ich habe sogar erwähnt, dass ich die Seite www.subdomain.example.com vollständig deaktivieren möchte, wenn ich die Weiterleitung richtig umleite, aber Nginx macht es einfach irgendwie, was seltsam ist Ich habe nirgendwo ausdrücklich gesagt, dass www.subdomain.example.com irgendetwas tun soll. Ja, wenn es böse ist, verwende ich es deshalb nicht im Weiterleitungsbeispiel ... mikicz vor 6 Jahren 0