Quero servir vários sites no meu servidor. Cada site que eu suponho que seja encapsulado como compilação do docker, cada um tem seu próprio nginx, que escuta uma única porta
Eu tenho um site com hostname site1.com. O docker compose expõe a porta 81:
...
services:
web:
image: nginx
...
ports:
- '81:443'
...
...
E o cliente nginx (dentro do container) escuta tudo no 443 e tem todas as configurações ssl
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/fullchain1.pem;
ssl_certificate_key /etc/letsencrypt/privkey1.pem;
# ...
# and everything else
}
E aqui está o host nginx, que está apenas passando da porta 80 para 81 de acordo com server_name:
server {
listen 80;
listen [::]:80;
server_name site1.com;
location / {
proxy_pass https://localhost:81;
}
}
Por enquanto está funcionando. Mas é inseguro. Então eu tento adicionar o encaminhamento 443.
server {
listen 443;
listen [::]:443;
server_name bederdinov.me;
location / {
proxy_pass https://localhost:81;
}
}
Nginx reinicia bem, mas quando vou para https://site1.com
estou recebendo umERR_SSL_PROTOCOL_ERROR
Parece bastante óbvio - o host nginx está tentando atender a solicitação com ssl, mas apenas o cliente docker nginx sabe como fazê-lo
Como posso dizer ao host nginx, que ele não precisa fazer nada, mas apenas passar todo o trabalho para o cliente nginx? Ou talvez haja outro software de servidor que eu possa usar para esta tarefa?