Eu gostaria de concordar com o comentário de Steffen (ouça 443 e ouça 80 no mesmo bloco de servidor).
Por favor, manipule HTTP e HTTPS em diferentes blocos de servidores. Eu suponho que a segunda diretiva de escuta tenha sobrescrito sua primeira diretiva de escuta. Além disso, eu perdi a palavra-chave "ssl" em suas diretivas de escuta para a porta 443.
server {
listen 80;
listen [::]:80 ipv6only=on;
root /path/to/app;
server_name mydomain.com
location / {
proxy_pass http://mydomain.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
root /path/to/app;
server_name mydomain.com
ssl on;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass http://mydomain.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Como o usuário xofer relatou, é possível ter HTTP e HTTPS em um bloco de servidor. Então, um exemplo para esta solução tudo em um também:
server {
listen 80;
listen [::]:80 ipv6only=on;
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
root /path/to/app;
server_name mydomain.com
ssl on;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass http://mydomain.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}