我似乎无法让http重定向工作。 知道为什么吗? 我总是得到
400 Bad Request
The plain HTTP request was sent to HTTPS port
我试过这些服务器块:
server {
listen 80;
server_name server.com;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 80 ;
server_name server.com;
return 301 https://$server_name;
}
这里要求的是443部分 443服务器块
server {
listen 443 ;
root /folder/;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name server.com;
location / {
try_files $uri $uri/ /index.html;
set $cors '';
if ($http_origin ~* 'https?://(localhost|www\.server\.com|www\.server.\.com)') {
set $cors 'true'; }
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
}
}
答案 0 :(得分:0)
在您的情况下,nginx正在侦听端口443并期望在那里进行纯文本连接。至少,这是我从配置中看到的(令人困惑的是消息说明了相反的事实)。
server {
listen 443;
仅指定端口,但不指定协议。相反,以下配置告诉nginx期望HTTPS / TLS(以前是 SSL )连接:
server {
listen 443 ssl;