Развертывание из текстового интерфейса Tomcat не выполнено. Указан недопустимый контекстный путь null

Кажется, очень простая конфигурация обратного прокси вызывает у меня головную боль. Основной файл конфигурации /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?

Спасибо.

0
задан 12 June 2018 в 16:31
1 ответ

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

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

 server {
  слушаем 80 default_server;
  название сервера _;
  return 444;
 }
 

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

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

Обратите внимание, что нет способа указать универсальный имя или по умолчанию сервер с помощью директивы имя_сервера . Это свойство 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;
    }
}
1
ответ дан 4 December 2019 в 15:57

Теги

Похожие вопросы