nginx на centos 7 обслуживает страницы, используя www.domain.tld, но не domain.tld (все запросы http на порт 80) - PullRequest
0 голосов
/ 26 марта 2020

У меня следующая проблема: Мой Centos 7 VPS настроен с nginx и двумя серверными блоками (vhosts) Для обоих доменов я могу получить доступ к веб-странице, используя www.domain.tld, но не используя domain.tld. При доступе к domain.tld не создаются журналы ошибок или доступа Записи DNS были проверены и указывают на IP-адрес сервера с пустой записью A (та же запись DNS работала правильно, когда сервер был настроен с Ubuntu 18.04, iRedMail, nextcloud и двумя веб-сайтами). Сообщение об ошибке в браузере: «Этот сайт не может быть достигнут. Domain.tld отказался подключиться».

Ниже приведены файлы конфигурации (nginx и один домен), я включил путь для справки:

nginx .conf

#cat /etc/nginx/nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    include /etc/nginx/sites-enabled/*.conf;
    server_names_hash_bucket_size 64;


  server {
    listen 80 default_server;
    server_name "";
    return 444;
  }
}

* default_server используется для предотвращения доступа к nginx странице приветствия при доступе к http: \ serverIP. На поведение не влияет возвращение этой конфигурации к nginx по умолчанию.

настройка домена

# cat /etc/nginx/sites-enabled/domain.tld.conf 

server {
   listen   80;
   server_name  domain.tld www.domain.tld;

   location / {
        root  /var/www/domain.tld;
        index  index.html index.htm;
   }

   error_page 404 /404.html;
       location = /40x.html {
   }

   error_page 500 502 503 504 /50x.html;
       location = /50x.html {
   }
# Setting log locations
   access_log /var/log/nginx/domain.tld-access.log;
   error_log /var/log/nginx/domain.tld-error.log debug;
}

Я должен упомянуть, что целью этого VPS является изучение основ c Linux sysadmin, поэтому нет никаких реальных данных или ограничений, а также это мой первый контакт с centos.

Спасибо за ваше время и усилия.

LE Добавление «127.0.0.1 www.domain.tld domain.tld» в / etc / hosts не решает проблему. Оба домена являются реальными доменами с DNS-сервером, и все записи реплицируются. Более того, использование трассировки маршрута к домену VPS IP достигнуто.

Nginx Конфигурация успешно подтверждена

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

После дальнейших исследований я заметил, что нет запроса появляются в журнале доступа или ошибок (ошибка установлена ​​для отладки) при доступе к domain.tld, но они делают для www.domain.tld Ведьма отправила бы меня прямо в DNS, но при проверке DNS с помощью нескольких раскопанных онлайн-версий все выглядит нормально, и domain.tld, и www.domain.tld указать правильный IP-адрес VPS

1 Ответ

0 голосов
/ 26 марта 2020

Потеряв почти два дня, пытаясь окончательно выяснить, что является причиной этой проблемы, я неумышленно зашел на веб-сайт, пока был удаленным, на другом P C, и, к моему удивлению, все работало просто отлично. Теперь я уверен, что я очищал свой DNS-кэш несколько раз, но, по-видимому, проблема была вызвана плагином httpsEverywhere.

Спасибо, и в следующий раз обещаю постараться: D

...