首页 > 解决方案 > Nginx L4 代理适用于 HTTPS,但不适用于 HTTP

问题描述

我有以下配置作为 Nginx 上的 L4 代理,一切正常。

  stream {
 

    
    map $ssl_preread_server_name $name {
    hostnames;
    .ipchicken.com          $ssl_preread_server_name;
    .bbc.com                $ssl_preread_server_name;
    .bbc.co.uk              $ssl_preread_server_name;
    .bbci.co.uk             $ssl_preread_server_name;
    .neverssl.com           $ssl_preread_server_name;  #<------- None SSL
    
}


server {

    resolver 8.8.8.8;
    listen 443;
    ssl_preread on;
    proxy_connect_timeout 5s;
    proxy_pass $name:$server_port;
}

但是当请求 HTTP 站点时,例如“http://neverssl.com/”,Nginx 没有响应,并且 Web 浏览器返回“ ERR_EMPTY_RESPONSE ”。
我确定我的语法有问题,因为通过 ssl_preread 调用 None HTTPS,但我无法为单个/多个域更正此问题,就像我对 HTTPS url 所做的那样。
我也将443改为80。但没有再次响应。
我不确定这个配置有什么问题。

标签: nginxnginx-reverse-proxy

解决方案


推荐阅读