• 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 无任何警告提示

  • 相关阅读:
    csp-s模拟103
    csp-s模拟102
    csp-s模拟101
    csp-s模拟100
    csp-s模拟99
    csp-s模拟98
    csp-s模拟97
    csp-s模拟96
    csp-s模拟95
    csp-s模拟94
  • 原文地址:https://www.cnblogs.com/restful/p/13070806.html
Copyright © 2020-2023  润新知