En este artículo vamos a ver cómo configurar un proxy inverso en nginx sobre una instancia de Cmdbuild levantado en un Tomcat.
La primera parte de la configuración es la del sitio que es bastante genérica. En nuestro caso la parte de cmdbuild está en un fichero aparte para ser compartido por varias instancias.
La configuración de SSL dependerá de nuestra instalación. Igualmente tendremos que ajustar la variable destination a nuestras necesidades.
En esta configuración no se hace una redirección para la ruta /cmdbuild/ui en la que por defecto se despliega la aplicación en un Tomcat.
server {
listen 443 ssl;
server_name mycmdbuild.sandetel.int;
include common/ssl.conf;
set $destination http://tomcat-ip:8080;
include common/cmdbuild.conf;
}
Y en el cmdbuild.conf:
add_header Strict-Transport-Security "max-age=31536000" always;
add_header Content-Security-Policy upgrade-insecure-requests;
location / {
proxy_pass $destination;
# WebSocket Support
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Host and X headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header SSL_PROTOCOL $ssl_protocol;
# Connectivity Options
proxy_http_version 1.1;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
proxy_connect_timeout 1800s;
proxy_buffering off;
}
Es posible que las cabeceras adicionales no sean necesarias en todos los casos pero sí en el nuestro para evitar el error de mixed-content.
Comentarios