Nginx reverse proxy à backend s'exécutant sur localhost

MODIFIER: Il s'avère que le ma configuration ci-dessous fonctionne réellement. Auparavant, j'ai été faire des redirections de port 36000 mais c'était à cause de certains paramètres de configuration sur mon application backend qui a été la cause.

Je ne suis pas entièrement sûr, mais je crois que j'ai peut-être veut mettre en place un reverse proxy à l'aide de nginx.

J'ai une application qui s'exécute sur un serveur au port de 36000. Par défaut, le port 36000 n'est pas accessible au public et mon intention est de nginx pour écouter une url publique, de diriger n'importe quelle requête à l'url d'une application qui s'exécute sur le port de 36000. Au cours de ce processus, l'utilisateur ne doit pas savoir que sa demande est envoyé à une application en cours d'exécution sur mon serveur, le port de 36000.

De le mettre dans des termes plus concrets, supposons que mon url est http://domain.somehost.com/

Lors de la visite http://domain.somehost.com/ , nginx doit ramasser la demande et le rediriger vers une application déjà en cours d'exécution sur le serveur sur le port 36000, l'application fait un peu de traitement, et transmet la réponse en retour. Port 36000 n'est pas accessible au public et ne doit pas apparaître dans le cadre de n'importe quelle url.

J'ai essayé une installation qui ressemble à:

server {
    listen 80;
    server_name domain.somehost.com
    location /{
        proxy_pass http://127.0.0.1:36000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

et y compris à l'intérieur de mon principal nginx.conf

Cependant, il m'oblige à faire du port de 36000 accessible au public, et j'essaie de les éviter. Le port de 36000 montre également dans le cadre de l'transmis l'url dans le navigateur web.

Est-il une manière que je peux faire la même chose, mais sans faire de port 36000 accessible?

Merci.

source d'informationauteur yanhan