Docker nginx multiple sites

Hello friends, i trying to use multiple sites, i got this, but i want to hide a port 4000 of my application.
I have 2 sub domains, demo.example.com and tst.example.com and i want connect to demo.example.com/api and get the xxx.xxx.xxx:4000/graphql
how i do this?

docker-compose.yml: 
tst: 
build: tst 
environment: 
VIRTUAL_HOST: tst.example.com 
restart: always 
volumes: 
- ./tst 

demo: 
build: demo 
environment: 
VIRTUAL_HOST: demo.example.com 
restart: always 
volumes: 
- ./demo 

nginx-proxy: 
image: jwilder/nginx-proxy 
ports: 
- "80:80" 
- "443:443" 
volumes: 
- /var/run/docker.sock:/tmp/docker.sock:ro 

restart: always 
privileged: true