Hola! Que bueno verte otra vez por aquí! Vamos a aprender a utilizar Apache como Proxy Inverso o Proxy Reverso.
Que es un Servidor Proxy?
Un proxy, o servidor proxy, en una red informática, es un servidor —programa o dispositivo—, que hace de intermediario en las peticiones de recursos que realiza un cliente (A) a otro servidor (C). Por ejemplo, si una hipotética máquina A solicita un recurso a C, lo hará mediante una petición a B, que a su vez trasladará la petición a C; de esta forma C no sabrá que la petición procedió originalmente de A. Wikipedia. Pero probablemente eres muy curioso y ya conoces como trabaja un proxy, normalmente se utiliza como un intermediario entre un equipo o red e Internet. El proxy inverso funciona exactamente al revés, un equipo cualquiera de Internet quiere acceder a un equipo de nuestra red, entonces pasa por este intermediario y deriva la petición en uno o varios servidores de backend.
Empecemos
Que necesitamos?
Un equipo CentOS instalado y Apache, si no sabes como instalar Apache puedes verlo en este post.
Chequeando mod_proxy
- Lo primero será chequear que mod_proxy esté habilitado y corriendo en Apache, por lo general viene habilitado por defecto.
httpd -M | grep proxy_module
La salida debe ser esta:
proxy_module (shared)
- Ya con el módulo activado lo que debemos hacer es configurar nuestro Virtual Host.
Configurando Reverse Proxy
- Creamos el archivo de nuestro Virtual Host.
touch /etc/httpd/conf.d/example.conf
- Lo editamos con vi, vim, nano o el editor de nuestra preferencia y agregamos lo siguiente:
Donde example.com es nuestro dominio y 10.0.0.1 es el server al que queremos enviar el request. Para guardar en Vi o Vim presionamos Esc, luego escribimos :wq y damos enter. Para guardar en Nano Ctrl + X y nos pregunta si deseamos guardar, digitamos “Y” y presionamos enter.
Configurando Load Balancer a multiples backends
- Debemos chequear que el módulo del loadbalancer está activado.
httpd -M | grep proxy_balancer_module
La salida debe ser esta:
proxy_balancer_module (shared)
- Igual que en el apartado anterior creamos el Virtual Host pero esta vez escribimos lo siguiente.
De esta forma habremos configurado nuestro Apache como Proxy Reverso, tanto para uno como para múltiples backends.