Назад | Перейти на главную страницу

Связь между server_name в nginx sites-available, файле / etc / hosts и A-записями

У меня есть следующие два серверных блока в моем конфигурационном файле в sites-available:

server {
       listen 80;
       server_name www.mydomain.be;

       root /usr/share/nginx/html;
       index index.html index.htm;


       location / {
              try_files $uri $uri/ =404;
      }
}

server {
       listen 80;
       server_name sub.mydomain.be;

       root /usr/share/nginx/sub;
       index index.html index.htm;


       location / {
              try_files $uri $uri/ =404;
      }
}

Я также создал A-запись для www.domain.be и sub.domain.be с IP-адресом моего сервера в качестве значения.

Тем не менее, когда я пытаюсь перезагрузить свою конфигурацию nginx с помощью перезагрузки службы nginx, это не удается.

Когда я удаляю второй серверный блок, он перезагружается, как и ожидалось.

Я знаю, что эта тема популярна и что здесь много таких вопросов [nginx] [subdomain], но ни один из них, похоже, не обсуждает явно, как следующие три вещи связаны вместе:

  1. виртуальные хосты или серверные блоки в nginx (оценка соответствия имени_сервера)
  2. влияние A-записей на то, как nginx обрабатывает запросы
  3. необходимость добавления хостов в / etc / hosts

Прямо сейчас у меня сложилось впечатление, что отсутствие знаний об этой общей картине, а не конкретных знаний о конфигурации nginx мешает мне выполнить эту работу.

Обновить:

Отследил проблему

Изначально я получил провал без каких-либо объяснений.

С помощью

sudo nginx -c /etc/nginx/nginx.conf -t

Я получил это сообщение

nginx: [emerg] could not build the server_names_hash, you should increase       server_names_hash_bucket_size: 32

после раскомментирования

server_names_hash_bucket_size 64;

проблема была решена.

Выявлена ​​проблема (которая не связана с A-записями или файлом / etc / hosts)

Изначально я получил провал без каких-либо объяснений.

С помощью

sudo nginx -c /etc/nginx/nginx.conf -t

Я получил это сообщение

nginx: [emerg] could not build the server_names_hash, you should increase       server_names_hash_bucket_size: 32

после раскомментирования

server_names_hash_bucket_size 64;

в nginx.conf проблема решена.