nginx: [emerg] “proxy_pass” não pode ter parte URI em localização dada por expressão regular, ou dentro nomeada

2

Estou usando o nginx para envio a um conjunto diferente de servidores, dependendo do geo do usuário. Como parece, o módulo geoip não retorna nenhum valor para os endereços locais (localhost, 192.168.0.X ... etc). link

Estou tentando manipular isso da seguinte forma: 1) verifique se o ip atual é um ip local:

    geo $isLanIP {
     default no;
     192.168.0.0/24 yes;
     127.0.0.1 yes;
    }

2) dependendo do valor de isLanIP proxy_pass de um upstream diferente:

    if ($isLanIP ~ no){
     proxy_pass http://$geoip_country_code.SearchControllerUpStream/;
     break;
    }

    if ($isLanIP ~ yes){
     proxy_pass http://local.SearchControllerUpStream/;
     break;
    } 

ao iniciar o nginx, o erro '"proxy_pass" não pode ter parte do URI no local dado pela expressão regular, ou dentro do named lo. ... .conf: 64 'é gerado. L64 é a segunda chamada proxy_pass.

BR.

bloco de servidores:

  server { 
    listen       8080;
    server_name  host;
    access_log   /var/log/nginx/host.access.log  main;
    error_page 404 = 404.html;
    error_page 403 = 403.html;
    root /home/user/app;

    location /SearchController {
        proxy_set_header Connection "Keep-Alive";
        proxy_set_header Proxy-Connection "Keep-Alive";

    if ($isLanIP ~ no){
        proxy_pass http://$geoip_country_code.SearchControllerUpStream/;
        break;
    }

    if ($isLanIP ~ yes){
        proxy_pass http://local.SearchControllerUpStream/;
        break;
    }

    limit_except POST {
            deny all;    
        }
    }

    location / {
    include emergingthreats-deny.conf;
    include projecthoneypot-deny.conf;
    include spamhaus-deny.conf;
    index index.htm index.html;
    }
 }
    
por 3agelx45 31.05.2015 / 02:30

0 respostas