nginx reverse proxy plusieurs backends

Voici ma situation: je vais avoir un serveur frontal exécutant nginx, et plusieurs serveurs backend exécutant apache + passenger avec différentes applications de rails. Je n’essaie PAS de faire un équilibrage de charge. Ce que je dois faire est de configurer nginx pour les connexions proxy à des serveurs spécifiques basés sur l’URL. IE, client.domain.com doit pointer sur xxx100: 80, client2.domain.com doit pointer sur xxx101: 80, etc.

Je ne suis pas familier avec nginx, mais je n’ai pas trouvé de configuration spécifique en ligne adaptée à ma situation.

Merci.

vous pouvez faire correspondre les différents URL avec des blocs de serveur, puis à l’intérieur de chaque bloc de serveur, vous avez les parameters de proxy inverse

server { server_name client.domain.com; # app1 reverse proxy follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx100:80; } server { server_name client2.domain.com; # app2 reverse proxy settings follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx100:80; } 

évidemment append d’autres parameters nginx (comme error_page , access_log , …) comme souhaité dans chaque server -block

Le commentaire de @ mohamnag a raison. proxy_pass n’est autorisé qu’à l’intérieur d’un location

Voir:

http://wiki.nginx.org/HttpProxyModule#proxy_pass

https://www.nginx.com/resources/admin-guide/reverse-proxy/

Donc, la configuration correcte serait

 server { server_name client.domain.com; location / { # app1 reverse proxy follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx100:80; } } server { server_name client2.domain.com; location / { # app2 reverse proxy settings follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx100:80; } }