As diretivas de localização são verificadas em uma ordem predefinida ( link ). No seu caso, a expressão regular para arquivos PHP é o gerenciamento de cache anc são considerados primeiro, depois o / location e (se / não devem corresponder) as diretivas / app1 / e / app2 /. Como root sempre corresponderá, / app1 / nunca é verificado.
A solução é simples: coloque o / app1 / e / app2 / antes da diretiva / -location e recarregue a configuração nginx.
BurninLeo