我在“乘客”/nginx 后面运行一个 Sinatra 应用程序。我试图让它同时响应 http 和 https 呼叫。问题是,当两者都在服务器块中定义时,HTTPS 调用通常会得到响应,但是 HTTP 会产生400个“普通 HTTP 请求被发送到 HTTPS 端口”错误。这是一个静态页面,所以我猜辛纳特拉与此无关。有办法解决吗?
这是服务器块:
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;
}