Nginx

server  {
  listen 443;
  server_name mon-domaine.com;
  ssl on;
  ssl_certificate /etc/nginx/ssl/mon-domaine.com.pem;
  ssl_certificate_key /etc/nginx/ssl/mon-domaine.com.key;
  ssl_session_cache shared:SSL:10m;
 
# config pour un chemin spécifique
  location  /mon-repertoire {
     proxy_set_header Accept-Encoding "";
# sub_filter permet de modifier un texte dans le fichier html renvoyé par nginx
     sub_filter_once off;
     sub_filter "http://mon-url-interne/" "https://mon-url-externe.com/";
     proxy_pass  http://mon-server-interne/mon-repertoire;
# forcer à être en https
     proxy_redirect http:// https://;
  }
 
# config pour le reste des chemin
  location / {
  # pour les websocket c'est mieux de spécifier la version du proxy
    proxy_http_version 1.1;
 
    proxy_pass  http://mon-server-interne:3000/;
    proxy_set_header    Upgrade $http_upgrade;
    proxy_set_header    Connection $connection_upgrade;
  }
}
server {
    listen 80 default;
    server_name test.local;
 
    location / {
    # permet de transmettre l'ip réel au serveur interne
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
 
    # sur une certaine condition...
        if ($request_body ~* ^(.*)\.test) {
            proxy_pass http://www.google.de;
            break;
        }
 
        root /srv/http;
    }
 
}