NGINX: Crear proxy inverso en Centos 7
Hoy vamos a montar un proxy inverso en un Centos 7.
Para los que no lo sepáis Nginx se puede usar para esos menesteres de una forma muy eficiente. Al final un proxy inverso sirve para controlar el tráfico que llega desde internet a nuestros servidores y poder gestionarlo de una forma segura y eficiente.
Empezamos con la configuración, deshabilitando Selinux (espero poder hacer alguna vez una entrada en el que éste no sea el primer paso):
sed -i /etc/selinux/config -r -e ‘s/^SELINUX=.*/SELINUX=disabled/g’
Instalamos el repositorio EPEL:
yum -y install epel-release
Actualizamos el sistema y aplicamos las settings pasadas de SELINUX para su modificación:
yum clean all && yum -y update && systemctl reboot
Una vez que reinicia el sistema. Instalamos NGINX:
yum -y install nginx
Realizamos backup del fichero de configuración:
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
Editamos el fichero de configuración:
# Cambiamos worker_processes auto;
worker_processes 2;
Ahora generamos un fichero y vamos añadiendo los diferentes servers:
nano /etc/nginx/conf.d/reverseproxy.conf
ssl_certificate ssl/domain.crt; # Si usamos certificado, previamente usaremos openssl para generarlo, sino eliminar líneas SSL
ssl_certificate_key ssl/domain.key; # Si usamos certificado, previamente usaremos openssl para generarlo, sino eliminar líneas SSL
ssl_dhparam ssl/domain.pem; # Si usamos certificado, previamente usaremos openssl para generarlo, sino eliminar líneas SSL
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
Y agregamos después las líneas que nos interesan en el mismo fichero, os dejo unos ejemplos:
server {
listen 443 ssl; # Ejemplo para nodo Proxmox
server_name pve1.negu.local;
client_max_body_size 0;
ssl on;
location / {
proxy_pass https://192.168.2.51:8006/;
}
}
server {
listen 80; # Ejemplo Grafana
server_name grafana.negu.local;
location / {
proxy_pass http://192.168.2.110:3000/;
}
}
server {
listen 80; # Ejemplo Guacamole
server_name guacamole.negu.local;
location / {
proxy_pass http://192.168.2.70:8080/guacamole-1.1.0/#/;
}
}
server {
listen 80; # Ejemplo Storefront
server_name citrixdc01.negu.local;
location / {
proxy_pass http://192.168.2.220/Citrix/StoreWeb/;
}
}
Ahora preparamos los ficheros:
[root@NGINX01 ~]# systemctl start nginx.service[root@NGINX01 ~]# systemctl status nginx.service
● nginx.service – The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-06-05 13:14:29 UTC; 2s ago
Process: 576 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 574 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 573 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 578 (nginx)
CGroup: /system.slice/nginx.service
├─578 nginx: master process /usr/sbin/nginx
├─579 nginx: worker process
└─580 nginx: worker process
Jun 05 13:14:29 NGINX01 systemd[1]: Starting The nginx HTTP and reverse proxy server…
Jun 05 13:14:29 NGINX01 nginx[574]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jun 05 13:14:29 NGINX01 nginx[574]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jun 05 13:14:29 NGINX01 systemd[1]: Started The nginx HTTP and reverse proxy server.
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?