Configurei um servidor Nginx como L4 Proxy(Forward Proxy With Stream Module), com a seguinte configuração no arquivo nginx.conf;
stream {
resolver 8.8.8.8;
server {
listen 443;
ssl_preread on;
proxy_connect_timeout 5s;
proxy_pass $ssl_preread_server_name:$server_port;
}
}
tudo funciona bem, com a configuração acima. mas digamos que eu queira limitar o acesso das URLs que passam para o meu servidor proxy. Não limitando o endereço IP, mas com nomes de URL.
Fiz uma pesquisa e configurei o seguinte arquivo de configuração e de alguma forma consegui controlar as URLs que passam para o meu proxy.
Mas a questão começa a partir daqui. Se um site grande for chamado, pois possui muitos links ou subdomínios carregados nos bastidores e sabendo que limitei os URLs permitidos e os subdomínios curinga não estão funcionando no bloco de fluxo, não consigo carregar o site solicitado completamente.
Existe uma solução para usá-lo no bloco de fluxo para oferecer suporte a curinga para o subdomínio do domínio? minha nova configuração está como abaixo:
stream {
map $ssl_preread_server_name $name {
ipchicken.com ipchicken.com;
www.bbc.com www.bbc.com;
www.bbc.co.uk www.bbc.co.uk;
bbci.co.uk bbci.co.uk;
}
server {
resolver 8.8.8.8;
listen 443;
ssl_preread on;
proxy_connect_timeout 5s;
proxy_pass $name:$server_port;
}
}
events {
}
Você está procurando a palavra-
hostnames
chave. Com esta palavra-chave você pode usar*.example.com
como uma entrada curinga paraexample.com
domínio. Da mesma forma que para aserver_name
diretiva, você pode usar.example.com
paraexample.com
e*.example.com
:Como alternativa, você pode usar qualquer regex dentro do
map
bloco, ou seja,