Assumindo que meu servidor é www.mydomain.com , em Nginx 1.0.6
Estou tentando fazer o proxy de todas as solicitações para o link para outros hosts. O URL de destino é especificado como um parâmetro GET chamado " url ".
Por exemplo, quando o usuário solicita uma delas:
http://www.mydomain.com/fetch?url=http://another-server.mydomain.com/foo/bar
http://www.mydomain.com/fetch?url=http://another-server/foo/bar
deve ser procurado para
http://another-server.mydomain.com/foo/bar
Estou usando a seguinte configuração do nginx e ela funciona bem apenas se o parâmetro de URL contiver o nome do domínio, como link ... ; mas falha no link ... no erro:
another-server could not be resolved (3: Host not found)
nginx.conf é:
http {
...
# the DNS server
resolver 171.10.129.16;
server {
listen 80;
server_name localhost;
root /path/to/site/root;
location = /fetch {
proxy_pass $arg_url;
}
}
Aqui, eu gostaria de resolver todas as URLs sem nome de domínio como nome de host em meudominio.com , em /etc/resolv.conf, é possível especificar o nome de domínio de pesquisa padrão para o todo Sistema Linux, mas isso não afeta o resolvedor nginx:
search mydomain.com
É possível no Nginx? Ou, alternativamente, como "reescrever" o parâmetro url para que eu possa adicionar o nome de domínio?