Мне нужно использовать Nginx в качестве прокси SSL, который перенаправляет трафик на разные задние концы в зависимости от субдомена.
Кажется, что везде я должен определить несколько разделов "server {", но это не работает корректно для SSL. При этом я всегда имел бы SSL, обрабатываемый на первом виртуальном хосте, поскольку имя сервера неизвестно до тех пор, пока вы не обработаете трафик https.
Сценарий:
- Один IP-адрес
- Подстановочный шаблон для одного шаблона SSL
-
Несколько бэкэндов, к которым необходимо получить доступ, например:
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? Любая помощь/альтернативы, ссылка, будет высоко оценена.