• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
阿愿的笔记本
feedId:68846209220766720+userId:66725942962965504 ]
   首页    新随笔       管理     
Nginx Ssl On 报错 400 Bad Request

线上调整了下nginx配置后,出现 

 

400 Bad Request

The plain HTTP request was sent to HTTPS port

 

参考链接

https://github.com/alibaba/tengine/issues/854

 

注意ssl on会将整个virtual server都开启成ssl,比如如下配置,即使listen 80没有配置ssl,80端口也是使用https协议,如果使用http协议访问80端口就会返回报错(400)。
建议开启ssl使用listen指令,配置中ssl on可以去掉。

server {
   listen 80;
   listen 443 ssl;

   ssl on;    # 将整个server{}开启成https协议(包括server{}内的80端口)
   ...
}

  

 

开发环境 nginx/1.19.0

存在 ssl on 时, 警告

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/nginx.conf:39

 

线上环境 nginx/1.13.4

server
{
        listen       80;
        listen       443;
        server_name  example.com;

        ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/ssl.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/ssl.key;
}

存在 ssl on 时, nginx -t 无任何警告提示

posted on 2020-06-09 10:08  阿愿的笔记本  阅读(3850)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3