【问题标题】:NGINX: "client sent invalid method while reading client request line"NGINX:“客户端在读取客户端请求行时发送了无效方法”
【发布时间】:2021-02-05 15:04:45
【问题描述】:

在为 Nginx 设置 SSL 并发出请求后,我收到一个乱码响应,其中包含神秘消息 client sent invalid method while reading client request line

我在 Alpine Docker 容器中使用 Let's Encrypt 生成了证书(用于上下文,与错误无关)。

这是截图:

简化的 Nginx 虚拟主机配置如下:

server {

    listen 443;

    ssl_certificate /vsdroot/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /vsdroot/letsencrypt/live/yourdomain.com/privkey.pem;

    ssl_dhparam /vsdroot/letsencrypt/ssl-dhparams.pem;
    include /vsdroot/letsencrypt/options-ssl-nginx.conf;

    root /vsdroot;

    location / {
        index index.html;
    }

安全说明:我的 SSL 密钥位于 Nginx docroot 中,仅用于本地测试,不要这样做在生产环境或任何地方!

【问题讨论】:

    标签: docker nginx alpine


    【解决方案1】:

    我缩小了导致问题的指令范围,并且能够通过修改服务器块上的 listen 行来一致地复制问题。

    复制。产生乱码以及client sent invalid method while reading client request line 错误。

    错误的listen

    server {
        listen 443;
    

    略有不同的错误,但仍然没有骰子:

    server {
        listen ssl;
    

    产品

    ...

    已修复。错误消失了,我可以处理我的请求(纯 html、fastcgi_pass 等)。

    配置:

    server {
        listen 443 ssl;
    

    ...

    ???利润截图???:

    我不愿意承认将神秘错误缩小到单个 listen 指令??。

    【讨论】:

      猜你喜欢
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多