Depuis la documentation proxy_pass:
Un cas spécial est l'utilisation des variables dans l'instruction proxy_pass: L'URL demandée n'est pas utilisée et vous êtes entièrement responsable de construire vous-même l'URL cible.
Étant donné que vous utilisez $1 dans la cible, nginx compte sur vous pour lui dire exactement quoi passer. Vous pouvez corriger cela de deux manières. Tout d'abord, il est facile de supprimer le début de l'URI avec un proxy_pass:
location /service/ {
# Notez le slash final sur le proxy_pass.
# Cela indique à nginx de remplacer /service/ par / lors du passage de la requête.
proxy_pass http://apache/;
}
Ou si vous souhaitez utiliser l'emplacement regex, incluez simplement les arguments:
location ~* ^/service/(.*) {
proxy_pass http://apache/$1$is_args$args;
}