LMSouq
server-admin Open

Dealing with nginx 400 "The plain HTTP request was sent to HTTPS port" error

JO
Johnny
1 month ago
3 views
Problem Description
I'm running a Sinatra app behind passenger/nginx. I'm trying to get it to respond to both http and https calls. The problem is, when both are defined in the server block https calls are responded to normally but http yields a 400 "The plain HTTP request was sent to HTTPS port" error. This is for a static page so I'm guessing Sinatra has nothing to do with this. Any ideas on how to fix this? Here's the server block: 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; }

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base