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

несколько файлов конфигурации nginx под nginx / conf.d / и 404

Кажется, что очень простая конфигурация обратного прокси вызывает у меня головную боль. Основной файл конфигурации /etc/nginx/nginx.conf имеет "include /etc/nginx/conf.d/*.conf;"

Затем у меня есть два файла conf под conf.d: default-1.conf и default-2.conf В первом файле есть:

server {
  # HealthCheck 
  server_name _;
  listen 0.0.0.0:443 ssl ;
  location = /health.html {
  root /usr/share/nginx/html;
 }
}

И второй файл имеет дополнительные прокси-операторы как

server {

 listen 0.0.0.0:443 ssl ;

 server_name www.example2.com;    
 ...    
 location / {    
 set $backend "some-backend";    
 proxy_pass $scheme://$backend;     
 }  
}

Когда есть только default-1.conf находится в conf.d /, curl -k https://localhost/health.html работает.

Если я также помещу default-2.conf в conf.d /, то та же команда curl даст 404 Not Found. Я также не вижу ошибок в error.log. Что я делаю не так?

Как я могу узнать правила, применяемые при создании окончательного файла conf с использованием этих нескольких меньших файлов conf?

Спасибо.

Ваш server_name _; не делает его сервером для приема всей почты домена по умолчанию. Из NGINX Имена серверов:

В примерах универсальных серверов странное имя _ можно увидеть:

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

В этом имени нет ничего особенного, это всего лишь одно из множества недопустимых доменных имен, которые никогда не пересекаются с каким-либо настоящим именем. Другие недопустимые имена, например -- и !@# могут быть использованы в равной степени.

И еще немного:

Обратите внимание, что невозможно указать имя для приема всей почты домена или сервер по умолчанию, используя server_name директива. Это свойство listen директива, а не server_name директива.

Ваш default-1.conf должен иметь:

server {
    # HealthCheck 
    listen       0.0.0.0:443  ssl  default_server;
    server_name  _;

    location = /health.html {
        root /usr/share/nginx/html;
    }
}