====== Oracle Cloud - Proxy inverso NGINX ======
===== Crear proxy =====
* Crear servidor proxy inverso (lo llamaremos ''PROXY'').
* En la misma VCN crear servidor Web (lo llamaremos ''WEB'').
* En ''PROXY'' autorizar mediante iptables la entrada de tráfico http y https de sde internet. Guardar configuración y copiar. Ejecutar como root.
iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables-save >/etc/iptables/rules.v4
cp /etc/iptables/rules.v4 /home/ubuntu/copias
* En ''WEB'' no es necesario hacer ningún cambio en ''iptables'' porque por defecto están autorizadas las comunicaciones dentro de la misma VCN.
* Autorizar el tráfico http y https de entrada a la VCN. Modificando la lista de seguridad por defecto.
* Instalar ''nginx'' en ambas máquinas.
sudo apt-get install nginx
* Cambiar el fichero ''index.html'' en ambos servidores y poner en cada uno de ellos el nombre del servidor. De esta manera nos servirá para las pruebas.
* En el DNS crear el nombre de dominio apuntando a la IP pública del servidor ''PROXY''.
* Al navegar a ese nombre de dominio nos debe dar la página web con el nombre del servidor ''PROXY''. Lo que pretendemos conseguir es que nos dé la página web del servidor ''WEB'', con el nombre correspondiente.
* en el fichero ''/etc/hosts'' se añade la **IP local** del servidor ''WEB'', con los dos nombres de dominio.
n.n.n.n trainer1.my.to
n.n.n.n demotrainer.my.to
* En el servidor ''PROXY'' cambiar la configuración del ''nginx''. Se añade fichero con la configuración del host virtual (solo http).
server {
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
listen 80 ;
listen [::]:80 ;
server_name xxxxxxxxxxxxxxxx;
}
* En el servidor ''WEB'' se hace lo mismo. Se añade fichero con el host virtual (solo http).
server {
listen *:80;
server_name xxxxxxxxxxxxxxxx;
root /var/www/html/;
location /static {
include /etc/nginx/mime.types;
root /var/www/html/;
}
}
===== Configurar SSL =====
Los certificados se instalan en el proxy.
* Instalar paquetes
sudo apt install certbot
sudo apt install python3-certbot-nginx
* Crear certificados
sudo certbot -d trainer1.my.to -d demotrainer.my.to
Con esto se habrán creado dos servidores virtuales nuevos para https,
apuntando a los nuevos certificados. Los servidores virtuales viejos se habrán
modificado para redirigir las peticiones http a https.
Para renovar los certificados hay que parar el servidor.