2016-11-23 182 views
0

我似乎无法让http重定向工作。 任何想法为什么? 我总是http https重定向失败

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

是怎样的配置在端口443的服务器? – StephenKing

+0

@StephenKing - 我已经添加了443部分 – Busted

+0

你会介意修复缩进以使其至少具有可读性吗?我已更正您的初始帖子,请自行完成。 – StephenKing

回答

0

在你的情况,nginx的是听端口443并期望在那里进行纯文本连接。至少,这是我从配置中看到的(令人困惑的是该消息说明了相反的事实)。

server { 
    listen 443; 

只指定端口,但不指定协议。相反,下面的配置告诉nginx期待HTTPS/TLS(以前SSL)连接:

server { 
    listen 443 ssl; 
+0

可悲的是,那对我不起作用 仍然收到同样的错误。 ,使用不同的浏览器,私人窗口等)。 – Busted

+0

然后我假设你的配置在其他地方也有一些指令。鉴于你粘贴在这里的混乱,我建议删除所有东西,并从头开始.. – StephenKing

+1

谢谢。感谢您的协助! – Busted