Estoy ejecutando una aplicación Sinatra detrás de passenger/nginx. Estoy intentando que responda tanto a llamadas http como a https. El problema es que cuando ambos se definen en el bloque del servidor, las llamadas a https se responden normalmente, pero el resultado es un error de 400 "Se envió la solicitud HTTP simple al puerto HTTPS". Esto es para una página estática así que supongo que Sinatra no tiene nada que ver con esto. ¿Alguna idea sobre cómo solucionar este problema?Tratando con nginx 400 "La solicitud HTTP simple fue enviada al puerto HTTPS" error
Aquí está el bloque de servidor:
server {
listen 80;
listen 443 ssl;
server_name localhost;
root /home/myhome/app/public;
passenger_enabled on;
ssl on;
ssl_certificate /opt/nginx/ssl_keys/ssl.crt;
ssl_certificate_key /opt/nginx/ssl_keys/ssl.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
location /static {
root /home/myhome/app/public;
index index.html index.htm index.php;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 /500.html;
access_log /home/myhome/app/logs/access.log;
error_log /home/myhome/app/logs/error.log;
}
sugiero que acepte la respuesta dada por @bobojam –
En mi caso fue que la URL en el navegador: 'my.example.com: 443' no funcionaba. Cambiando eso en cambio a 'https: // my.example.com' funcionó. Extraño, nunca tuve este problema con apache. – Sebastian
'ssl on;' le dice a NGINX al servidor ** CUALQUIER ** contenido a través de SSL. Use el indicador "ssl" al final de su 'listen 443;' por ejemplo 'listen 443 ssl;' si su servidor ofrece tráfico tanto http como https, y quite la directiva 'ssl on;'. – Stphane