Я хочу обслуживать несколько сайтов на своем сервере. Каждый сайт, который я полагаю обернуть как сборку docker-compose, у каждого есть свой собственный nginx, который слушает один единственный порт.
У меня есть сайт с именем узла site1.com. Это docker compose выставляет порт 81:
...
Сервисы:
веб:
изображение: nginx
...
порты:
- '81:443'
...
...
А клиент nginx (внутри контейнера) все слушает на 443 и имеет все настройки ssl
сервер {
слушать 443 ssl;
ssl_certificate /etc/letsencrypt/fullchain1.pem;
ssl_certificate_key /etc/letsencrypt/privkey1.pem;
# ...
# и все остальное
}
А вот хост nginx, который просто переходит с 80 порта на 81 по server_name:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера site1.com;
место расположения / {
прокси_пароль https://localhost:81;
}
}
На данный момент это работает. Но это небезопасно. Поэтому я пытаюсь добавить 443 переадресацию.
сервер {
слушать 443;
слушать [::]:443;
имя_сервера bederdinov.me;
место расположения / {
прокси_пароль https://localhost:81;
}
}
Nginx хорошо перезагружается, но когда я захожу в https://site1.com
я получаю ERR_SSL_PROTOCOL_ERROR
Кажется вполне очевидным — хост nginx пытается обслужить запрос по ssl, но только докер-клиент nginx знает, как это сделать
Как я могу сказать хосту nginx, что ему ничего не нужно делать, а только передать всю работу клиенту nginx? Или, может быть, есть другое серверное программное обеспечение, которое я могу использовать для этой задачи?