Есть три фрагмента nginx-конфигов:
# 1
server {
server_name service1.domain.tld;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
if_modified_since before;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
access_log off;
}
}
# 2
server {
server_name service2.domain.tld;
location / {
proxy_pass http://127.0.0.1:48080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
if_modified_since before;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
access_log off;
}
}
# 3
server {
server_name *.domain.tld;
location / {
proxy_pass http://comtainer.lxc;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
if_modified_since before;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
access_log off;
}
}
server {
server_name domain.tld;
rewrite ^(.*) http://www.domain.tld$1 permanent;
access_log off;
}
Т.е. логика простая — для двух конкретных доменных имён проксируем запросы к двум сервисам, а всё остальное переадресуем в LXC-контейнер.
Эти куски раскиданы по файлам, но порядок их загрузки такой, как указано выше.
Так вот, веселье.
1. Сервис 1 работает всегда.
2. Сервис 2 вызывается только когда отключен фрагмент # 3 с прямым обращением к LXC-контейнеру. Если включен код проксирования к контейнеру, то вместо сервиса 2 отдаётся запрос к контейнеру.
3. Какое-то время назад всё работало в этой конфигурации. Не скажу точно, когда, но неделю или две назад было всё ок. Но бинарник nginx последний раз модифицировался 30 апреля. Так что с обновлением это не связано.
Есть мысли, куда копать? Я бы ещё понял, если бы nginx вопреки заявленному порядку обработки server_name грузил бы сперва wildcards. Но нет, service 1 работает корректно :-/