Nginx работает автоматически для www, даже без настройки

378
mikicz

Без какой-либо конфигурации с моей стороны, nginx обслуживает веб-сайт для www. а также домен, который я установил server_name. Я понятия не имею, как это происходит, но я бы хотел отключить это.

Значение: я настроил сервер subdomain.example.com, который работает нормально, но www.subdomain.example.comтакже работает!

Это мой 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; } 

А затем файл примера из /etc/nginx/conf.d/:

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

Я проверил, и у меня нет подстановочных знаков ни в одном из других конфигов.

Когда я добавляю:

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

Это работает, и www. перенаправляется, но мне не нравится это решение, по разным причинам я хотел бы просто отключить www. полностью.

Есть идеи?

1
Я думаю, что ваш браузер, вероятно, делает это, так как я полагаю, что в chrome и firefox произошли некоторые изменения, чтобы «игнорировать» www. добавлено к URL. Я лично думаю, что это глупая идея, но увы. Попробуйте выполнить поиск DNS для обоих URL, с и без www. Тот, у кого нет, должен потерпеть неудачу, если у вас нет символа подстановки Если это терпит неудачу, это - явно браузер, вмешивающийся. djsmiley2k 5 лет назад 0
@ djsmiley2k Я так не думаю. Я пытался использовать `curl` и до сих пор проходит, без каких-либо упоминаний о www в конфигурации nginx mikicz 5 лет назад 0

1 ответ на вопрос

0
harrymc

Этот ответ переполнения стека предлагает использовать этот код для удаления wwwперед любым доменом:

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

Обратите внимание, что если это зло, но говорят, что работать с rewrite.

Это на самом деле не отвечает на мой вопрос, хотя я даже упомянул, что когда я делаю перенаправление, оно перенаправляет правильно, я хотел бы полностью отключить www.subdomain.example.com, но nginx просто каким-то образом заставляет его работать, что странно, так как Я нигде не говорил, что www.subdomain.example.com должен что-то делать. Да, если это зло, вот почему я не использую его в примере перенаправления ... mikicz 5 лет назад 0