我有以下配置作为 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; #<-------
}
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 没有响应。对这个问题有任何想法吗?
据我所知
ssl_preread
,指令仅适用于 HTTPS 协议。我不知道如何Host
在ngx_stream_core_module
. 您可以尝试在http上下文中使用附加server
块,如下所示:在流服务器块不需要使用
$server_port
变量,你只在 443 端口上监听,所以你可以使用proxy_pass $name:443;