letsencrypt - proxy inverso nginx
nginx reverse proxy múltiples backends (2)
El comentario de @mohamnag es correcto. proxy_pass
solo se permite dentro de una location
Ver:
http://wiki.nginx.org/HttpProxyModule#proxy_pass
https://www.nginx.com/resources/admin-guide/reverse-proxy/
Entonces la configuración correcta sería
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://x.x.x.100: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://x.x.x.100:80;
}
}
Esta es mi situación: tendré un servidor frontend ejecutando nginx y varios servidores backends ejecutando apache + pasajero con diferentes aplicaciones de rieles. NO estoy tratando de hacer ningún equilibrio de carga. Lo que tengo que hacer es configurar nginx para las conexiones de proxy a servidores específicos basados en la url. IE, client.domain.com debe apuntar a xxx100: 80, client2.domain.com debe apuntar a xxx101: 80, etc.
No estoy tan familiarizado con nginx, pero no pude encontrar una configuración específica en línea que se ajuste a mi situación.
Gracias.
puedes hacer coincidir las diferentes URL con los bloques del servidor y, luego, dentro de cada bloque de servidores, tendrás la configuración del proxy inverso
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://x.x.x.100: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://x.x.x.100:80;
}
obviamente agregue más configuraciones nginx (como error_page
, access_log
, ...) como desee en cada server
-block