Apache HTTP Server - Dos o més Servidors darrere de la mateixa IP pública
Depenent de la topologia de xarxa necessària en cada situació, és possible necessitar un proxy o balancejador de peticions HTTP, no és necessari que es tinguen milions de peticions per a tal necessitat, simplement pot ser que disposem de diversos servidors (IIS, HTTP, E-mail, ...), i es pretén ocultar aquesta topològica al client llançant tot pel mateix port (seguretat per foscor).
En el context de les xarxes informàtiques, el terme proxy, fa referència a un programa o dispositiu que realitza una acció en representació d'un altre. La seua finalitat més habitual és la de servidor proxy, que serveix per a permetre l'accés a Internet a tots els equips d'una organització quan només es pot disposar d'un únic equip connectat, o només disposem d'una adreça IP pública.
Es pot donar el cas que tinguem dos servidors web amb la mateixa IP publica. Apatxe té una funció que satisfà aquesta necessitat. El mòdul es diu "proxi_http". El cas que els plantege és el següent escenari.
Tenim ja un servidor web a la nostra xarxa sota Ubuntu Server 18.04 LTS (Bionic Beaver), però volem que un altre ordinador de la nostra xarxa siga també un servidor, aquest sot a Debian 9 (Stretch). Tots dos fan ús del Servidor HTTP d'Apatche. Al primer s'accedeix a través de http://roig.sytes.net/ i al segon volia que s'accedís a través de http://servidorsroig.sytes.net/, sense tindre la necessitat d'afegir en cap d'ells el port d'escolta del servidor Apache.
Per fe-ho configurarem un dels servidors (en aquest exemple Ubuntu Server) rebrà les peticions del servidor Debian, i les redirigirà a l'equip pertinent (seguint l'exemple el Servidor sot a Debian). Tant se val els sistemes dels servidors, però si haurem de tindre tots dos, servint les webs, sot als Virtual Hosts del servidor Apache.
Al Servidor (Ubuntu Server) que rebrà les peticions per redirigir-les a l'equip pertinent
Primer per part del servidor Apache haurem de tindre habilitat, el mòdul proxi_http, per fer-ho tant en Ubuntu com en Debian cal escriure al terminal:
# a2enmod proxy proxy_http
Per activar la nova configuració, hem d'executar:
# systemctl restart apache2
Després hem de configurar el Servidor perquè quan es facen peticions per a l'altre servidor (en aquest cas Servidor Debian), és les, reenvie. Per això utilitzarem els Virtual Hosts que són a /etc/apache2/sites-available, podem donar-li un nom que ens ajude tant com a identificar-lo com a sabre la seua funció:
# nano -w /etc/apache2/sites-available/proxi-servidorsroig.sytes.net.conf
On tan sols afegirem les següents directives:
<VirtualHost *:80>
ServerAdmin admin@servidorsroig.sytes.net
ServerName servidorsroig.sytes.net
ServerAlias www.servidorsroig.sytes.net
# IP fixa del servidor destí o Adreça web.
ProxyPass / http://192.168.1.6
ProxyPassReverse / http://192.168.1.6
</VirtualHost>
Deseu i tanqueu el fitxer quan hàgeu acabat. No oblideu canviar l'anteriorment ressaltat per la seua pròpia configuració, podem utilitzar tant la IP fixa del servidor, com en aquest cas, com l'adreça web que alen aquest cas seria: http:servidorsroig.sytes.net.
Tingueu en compte que al meu cas el domini i la IP interna del servidor on es deuen enviar les peticions és servidorsroig.sytes.net i http://192.168.1.6/ (Servidor Debian) i estem creant el redreçament en (Ubuntu Server).
Habilita l'arxiu amb l'eina a2ensite. Amb privilegis de superusuari, fent ús de sudo o com usuari root tecleja:
a2ensite proxi-servidorsroig.sytes.net.conf
A continuació, provem els errors de configuració. Amb privilegis de superusuari, fent ús de sudo o com usuari root tecleja:
apache2ctl configtest
Heu de veure la sortida següent:
Syntax OK
Reinicia Apache per implementar els canvis. Amb privilegis de superusuari, fent ús de sudo o com usuari root tecleja:
systemctl restart apache2
Al Servidor (Debian 9) que és al darrere del Proxi
Ara al servidor que és al darrere d'aquest Proxi Servidor Debian, hem d'afegir el lloc que servira les peticions demanades cap a l'exterior. aquest lloc el creem editant l'arxiu default o creant un de nou. És necessari crear un fitxer host virtual (Virtual Hosts), amb les directives correctes i ordinàries si no sabeu com fer-ho podeu consultar la guia Virtual Hosts del servidor Apache. Seguint els exemples de aquesta mateixa guia:
<VirtualHost *:80>
ServerAdmin admin@servidorsroig.sytes.net
ServerName servidorsroig.sytes.net
ServerAlias www.servidorsroig.sytes.net
DocumentRoot /var/www/servidorsroig.sytes.net/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
És possible que tingueu un fireway activat, en aquest cas li donarem permis al port d'escolta del servidor Apache, segons aquesta guia el port 80 i firewall UFW, podeu fer-ho escrivint:
ufw allow 80/tcp
Ja podem accedir als dos servidors web amb la mateixa IP externa i el mateix port d'escolta del servidor Apache.


Torna a la portada