Não funciona não é especialmente detalhado, mas deixe-me tentar adivinhar qual pode ser o problema. Sugiro tentar a seguinte configuração:
server {
listen 8081;
server_name localhost;
location /abc/ {
proxy_pass http://remote.com/abc/;
proxy_http_version 1.1;
proxy_redirect http://localhost:8081/ http://remote.com/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /efg/ {
proxy_pass http://remote.com/efg/;
proxy_http_version 1.1;
proxy_redirect http://localhost:8081/ http://remote.com/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
O que eu realmente mudei foram as definições de blocos de localização e adicionei um cabeçalho Host , apenas para o caso de o host remoto usar hosts virtuais baseados em nome. Todas as outras alterações são cosméticas - a legibilidade é melhorada quando todas as diretivas correspondentes são reunidas e ordenadas adequadamente (isso pode estar em ordem de importância ou por algum outro traço).
Se a configuração acima não funcionar conforme o esperado, adicione algumas informações sobre o que exatamente não funciona e como ela falha exatamente.
Editar: também adicionei um cabeçalho Host à configuração acima, para o caso de o remoto usar hosts virtuais baseados em nome.