Eu tenho a seguinte configuração como proxy L4 sobre Nginx e tudo funciona bem.
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;
}
Mas quando o site HTTP é solicitado, como "http://neverssl.com/", o Nginx não está respondendo. Alguma ideia para esta questão?
Até onde eu sei, a
ssl_preread
diretiva funciona apenas com o protocolo HTTPS. Não sei como obterHost
o valor do cabeçalho HTTP no arquivongx_stream_core_module
. Você pode tentar usar umserver
bloco adicional no contexto http como mostrado aqui :Não há necessidade de usar
$server_port
variável no bloco do servidor de fluxo, você está ouvindo apenas na porta 443, então você pode usarproxy_pass $name:443;