У меня настроен nginx для одного из моих доменов. Он работает как веб-интерфейс для сервера приложений Wildfly. Однажды я решил настроить среду бета-тестирования на той же машине. Поэтому я добавил еще один поддомен в конфигурацию. После перезапуска nginx перестал обслуживать первое приложение. Мои файлы конфигурации:
основной поддомен:
server {
listen 80;
server_name sub.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name sub.example.com;
ssl_certificate /etc/nginx/ssl/bundle.crt;
ssl_certificate_key /etc/nginx/ssl/sub.example.com.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/sub.example.com.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
}
}
тестовый поддомен:
server {
listen 443;
server_name sub-test.example.com;
return 301 http://$host$request_uri;
}
server {
listen 80;
server_name sub-test.example.com;
access_log /var/log/nginx/sub-test.example.com.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
}
}
Я должен добавить, что каждая из вышеперечисленных конфигураций работает как положено, когда в одиночку. Но вместе они не любят друг друга. Запрос на первый из них возвращает НЕ НАЙДЕННЫЙ статус HTTP.
Конечно, проблема может быть расположена на моем сервере Wildfly. Он настроен на обработку виртуальных хостов, и я не совсем уверен, что все в порядке. Но когда оба приложения запущены и nginx проксирует только одно из них, оно работает нормально.
Спасибо за помощь.