En este post explicaré brevemente la forma de acceder a las webs que esten alojadas en diferentes máquinas empleando el puerto HTTP/s (80 / 443).
¿Puedo servir 2 o mas «webs» por el mismo puerto http/s (80 / 443) en mi casa?
Sí, haciendo lo siguiente (modo resumen):
- Crear una maquina virtual o en su lugar tener una Raspberri Pi. (Supongamos que la IP de esta máquina es la 10.1.1.101)
- Abrir el puerto 80 en nuestro router (NAT) apuntando a la ip 10.1.1.101
- Instalar y configurar nginx en la maquina 10.1.1.101
- Crear las maquinas que queramos sirviendo en el puerto que queramos, 10.1.1.102, 10.1.1.103… 10.1.1.*.
Ahora lo voy a detallar un poco más;
Instalar y configurar reverse proxy con NGiNX
Instalar en nuestra maquina (Debian por ejemplo) con la ip 10.1.1.101 el NGiNX:
apt-update
apt-get install nginx
Probar que esta funcionando accediendo mediante el navegador Web a la IP del servidor http://10.1.1.101
También probaremos el funcionamiento de los otros servidores los cuales deseamos acceder por ejemplo al servidor 10.1.1.102 mediante el dominio domain1.com y al 10.1.1.103 con el dominio domain2.com.
Configurar reverse proxy
En el servidor 10.1.1.101 editar el archivo:
vi /etc/nginx/sites-available/default
Introducir lo siguiente:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 80;
server_name domain1.com www.domain1.com;
add_header X-Frame-Options "SAMEORIGIN";
location / {
proxy_pass http://10.1.1.102:32768$request_uri;
}
}
server {
listen 80;
server_name domain2.com www.domain2.com;
add_header X-Frame-Options "SAMEORIGIN";
location / {
proxy_pass http://10.1.1.103:5000$request_uri;
}
}
server {
listen 80;
server_name minube.domain1.com;
#add_header X-Frame-Options "SAMEORIGIN";
location /{
proxy_pass http://10.1.1.104;
}
client_max_body_size 10G;
}
Probar reverse proxy en nuestra red local
Acceder al archivo hosts de nuestro ordenador local para realizar las pruebas.
En windows está en:
C:WindowsSystem32driversetc
En Debian está en:
/etc/hostname
Introducir lo siguiente:
domain1.com 10.1.1.101
domain2.com 10.1.1.101
Como se puede observar los dos dominios atacarán al servidor con el reverse proxy configurado.
Si todo a ido bien, desde internet ya podremos resolver los dos dominios los cuales son dos máquinas diferentes y estan «empleando» el mismo puerto.
Enjoy!