Мне нужно использовать Nginx в качестве прокси-сервера SSL, который перенаправляет трафик на разные задние концы в зависимости от субдомена.nginx proxy на основе хоста при использовании https
Кажется, что везде я должен определить несколько разделов «server {», но это не работает корректно для SSL. При этом я всегда буду обрабатывать SSL на первом виртуальном хосте, поскольку имя сервера неизвестно до тех пор, пока вы не обработаете трафик https.
Сценарий:
- один IP-адрес
- Один SSL Wildcard подстановочные
Несколько движки, который должен быть доступен как следующее:
https://one.mysite.com/ -> http://localhost:8080 https://two.mysite.com/ -> http://localhost:8090
Nginx говорит " если «злой: http://wiki.nginx.org/IfIsEvil, но что еще я могу сделать?
Я пробовал это, но он не работает, я получаю ошибку 500, но ничего в журналах ошибок.
server {
listen 443;
server_name *.mysite.com;
ssl on;
ssl_certificate ssl/mysite.com.crt;
ssl_certificate_key ssl/mysite.com.key;
location/{
if ($server_name ~ "one.mysite.com") {
proxy_pass http://localhost:8080;
}
if ($server_name ~ "two.mysite.com") {
proxy_pass http://localhost:8090;
}
}
Неужели кому-то удалось выполнить это с помощью Nginx? Любая помощь/альтернативы, ссылка, будет высоко оценена.
Спасибо, эта информация была очень полезной для меня. FYI: Я узнал, что когда вы используете 'listen 443 ssl;' вам также не нужно делать 'ssl on ;, потому что nginx включит для вас режим SSL. Источник: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen – Tom