Nginx - Proxy reverso para uma configuração remota do Worpress

3

Eu tenho um Server-a que contém apenas um Nginx e um aplicativo de nó em execução.

No entanto, desejo veicular o aplicativo Node desse servidor, que também está veiculando um aplicativo Angular.

Mas quando eu navego para server-a / blog , eu quero fazer um proxy reverso (proxy interno) para um servidor diferente (Server-b), que contém uma configuração do Wordpress, também com um Nginx.

Então, sempre navego para server-a / blog , veicula o conteúdo do server-b

Eu trabalhei parcialmente com essa configuração:

    proxy_buffering on;
    proxy_buffer_size 1k;
    proxy_buffers 24 4k;
    proxy_busy_buffers_size 8k;
    proxy_max_temp_file_size 2048m;
    proxy_temp_file_write_size 32k;



    location /blog/en/ {
        try_files $uri @proxy;
    }

    location @proxy {
        proxy_redirect off;
        proxy_set_header X-Forwarded-Host "$host";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://server-b;
    }

Mas o que acontece é: Se eu navegar para server-a / blog / wp-admin , recebo um redirecionamento instantâneo para server-a / wp-admin .

Todos os links relativos na instalação do Wordpress devem estar de acordo com a URL do servidor.

Esta é a configuração que tenho na minha configuração do Wordpress DB:

    +-----------+-------------+-----------------------+----------+
    | option_id | option_name | option_value          | autoload |
    +-----------+-------------+-----------------------+----------+
    |         1 | siteurl     | http://server-a/blog/ | yes      |
    |         2 | home        | http://server-a/blog/ | yes      |
    +-----------+-------------+-----------------------+----------+
    
por daminufe 21.09.2016 / 00:09

1 resposta

0

Isto é quase certamente devido aos diferentes tipos de URLs relativos.

De acordo com o link

A directory called .. (two periods) in a relative URL indicates the parent directory, essentially stripping off everything up to the previous slash in the the Base URI. Note that this only has meaning inside the pathname, so you cannot use this notation to go up higher than the root directory.

A directory called . (one period) refers to the current directory.

A relative URL that begins with / (a slash) always replaces the entire pathname of the base URL.

A relative URL that begins with // (two slashes) always replaces everything from the hostname onwards.

Assim, um URL relativo que faça "/ wp-admin" substituirá toda a base conforme você está passando. Você quer que ele seja substituído por "./wp-admin" para que não seja reescrito tudo.

Quanto a realmente mudar isso, não tenho certeza, mas suspeito que você precisará alterá-lo no lado do wordpress.

    
por 21.09.2016 / 00:20