¡Esta es una revisión vieja del documento!
# 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.
```bash 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.
```bash 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
```bash sudo apt install certbot sudo apt install python3-certbot-nginx ```
* Crear certificados
```bash 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.