Con jwilder nginx-proxy, ¿cómo pasar proxy una url de subdirectorio a un contenedor específico?

yo suelojwilder / nginx-proxy para hacer un proxy inverso. Trato de redirigirhttp://localhost:8000/api a un servicio php específico.

La estructura del directorio:

.
+-- docker-compose.yml
+-- nginx
+-- nodejs
|   +-- index.js
|   +-- …
+-- php
|   +-- api

docker-compose.yml:

version: "3.1"

services:

  nginx-proxy:
    image: jwilder/nginx-proxy:alpine
    ports:
      - "8000:80"
    volumes:
      - ./php:/srv/www
      - /var/run/docker.sock:/tmp/docker.sock:ro

  nodejs:
    image: node:alpine
    environment: 
      - NODE_ENV=production
      - VIRTUAL_HOST=localhost
      - VIRTUAL_PORT=8080
    expose:
      - "8080"
    working_dir: /home/app
    restart: always
    volumes:
      - ./nodejs:/home/app
    command: ["node", "index.js"]

  php:
    image: php:apache
    environment:
      - VIRTUAL_HOST=localhost
    volumes:
      - ./php:/var/www/html

Esto funciona bien para elnodejs Servicio.

Ahora, me gustaría redirigir las llamadas ahttp://localhost:8000/api alphp Servicio. Me imagino que tengo que agregar alnginx conf algo como:

server {
  location /api {
    proxy_pass http://php:80/api;
    proxy_set_header Host $host;
  }
}

Esta característica no está integrada en la lib. Entonces, ¿cómo puedo lograr eso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta