proxy de URL Nginx para o servidor

1

Estou tentando

  • redirecione todo o tráfego de www.example.com e example.com para old-www.website.com

  • proxy todo o tráfego de example.com/forum (e www) para o servidor do fórum @ 192.168.100.100

Eu tentei a seguinte configuração, mas ela continua me devolvendo ao meu site antigo Quando eu remover o location / , o fórum não está carregando e estou recebendo 404's , já que o servidor está tentando carregar arquivos @ example.com/ em vez de example.com/forum

server {
    listen 80;
    server_name www.example.com example.com;

    location /forum/ {
        proxy_pass         http://192.168.100.100/;
        proxy_redirect     off;
        proxy_set_header   Host $host;
    }

    location / {
        return 302 $scheme://www.old-site.com;
    }
}

como posso corrigir isso?

    
por f.farah 10.11.2016 / 12:29

2 respostas

1

O problema é o / extra na sua declaração proxy_pass . Isso faz com que o nginx use / como o URI sempre com seu fórum.

Tente isto:

location ~ /forum(/.+)? {
     proxy_pass http://192.168.100.100$1;
     proxy_redirect off;
     proxy_set_header Host $host;
}

Aqui, suponho que você queira que a URL http://www.example.com/forum/something seja intermediada por proxy para http://192.168.100.100/something . Sem a correspondência de expressão regular e $1 no proxy_pass , seria um proxy para http://192.168.100.100/forum/something .

    
por 10.11.2016 / 17:41
-1

Tente isso, aqui está um exemplo muito simples que redireciona os clientes para um novo nome de domínio:

server {
    listen 80;
    listen 443 ssl;
    server_name www.old-name.com;
    return 301 $scheme://www.new-name.com$request_uri;
}
    
por 10.11.2016 / 12:39

Tags