Como não tenho crédito suficiente, não posso comentar as entradas, então, aqui vem minha resposta como uma entrada separada.
Não sei por que o OP discorda, mas acho que Martin Fjordval identifica o problema corretamente e sugere a coisa certa. Eu sugeriria uma ligeira modificação em seu trecho, como abaixo:
location /app1/ {
proxy_set_header Host $http_host/app1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
add_header Pragma "no-cache";
add_header Cache-Control "no-cache";
proxy_pass http://internal.ip:port/;
sub_filter 'action="/' 'action="/app1/';
sub_filter 'href="/' 'href="/app1/';
sub_filter 'src="/' 'src="/app1/';
sub_filter_once off;
}
Portanto, se você tiver certeza de que todos os seus URLs relativos que estão começando com '/' precisam ser redirecionados, o texto acima acrescentaria '/ app1 /' a todos eles e os pegaria pelo bloco 'location / app1 /' quando referenciado. Você pode então visualizar a fonte da página e confirmar que a reescrita está acontecendo.
Você provavelmente também precisaria do todo ou pelo menos da parte do shabang 'proxy_set_header', especialmente o 'proxy_set_header Host $ http_host / app1'.