Патрик, к сожалению, вы не можете установить более одного HTTPS-сервера на основе имени. Объяснения длинные, но вы можете проверить здесь некоторую незавершенную информацию и примеры (на основе Apache, понятия не имею о nginx)
конфликт конфигурации двух сайтов в nginx
У меня настроен 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 проксирует только одно из них, оно работает нормально.
Спасибо за помощь.
2 ответа на вопрос
Вы можете использовать более одного сайта https.
Технология называется SNI, или индикация имени сервера. Ссылка
Перемещая часть ssl из конфигураций сервера, вы также уменьшаете чрезмерную нагрузку при настройке сертификатов. Я использую следующую структуру на своих обратных прокси:
sites.d/ | -ssl.conf | -vhost1.conf | -vhost2.conf
Затем ssl.conf содержит:
ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/server.key;
Другим вариантом будет использование отдельных сертификатов с разными общими именами.
Похожие вопросы
-
2
Есть ли способ привязать беспроводную сеть к настройке прокси?
-
5
Доступ к hulu / youtube за пределами США
-
1
Opera «забывает» определение прокси, если прокси недоступен
-
-
5
Заставить Firefox автоматически подобрать интернет-прокси по умолчанию?
-
1
Обратный прокси Apache
-
3
Не могу понять, почему это регулярное выражение не применяется
-
2
Бесплатный прокси-сервер для Windows Home Server?
-
3
Настройки прокси на ПК переопределяются
-
5
Кто-нибудь знает скриптовый способ переключения настроек интернет-прокси LAN для браузеров
-
2
Заставьте Evolution пройти через SOCKS прокси