JasperReports · 11 min read · Oct 10, 2025
Cómo instalar JasperReports con Nginx Proxy en Ubuntu 22.04

JasperReports es un motor de informes y biblioteca de clases de Java gratuito y de código abierto que ayuda a los desarrolladores a agregar capacidades de informes a sus aplicaciones. Es un servidor de informes independiente y embebible que proporciona funcionalidad de informes y análisis. Con JasperReports, puedes generar informes profesionales, incluidos imágenes, gráficos y diagramas. Esta herramienta también te ayuda a escribir contenido enriquecido en la pantalla, impresora y varios formatos de archivo, incluidos HTML, PDF, XLS, RTF, CSV, XML, ODT y TXT.
En esta publicación, te mostraremos cómo instalar JasperReports Server en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Un nombre de dominio válido apuntando a la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Instalar Java JDK
JasperReports se basa en Java, por lo que necesitarás instalar el Java JDK en tu servidor. Puedes instalarlo ejecutando el siguiente comando:
apt install default-jdk unzip wget -yUna vez que Java esté instalado, puedes verificar la versión de Java usando el siguiente comando:
java --versionObtendrás la versión de Java en la siguiente salida:
openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Instalar y configurar la base de datos MariaDB
También necesitarás instalar el servidor de base de datos MariaDB en tu sistema. Puedes instalarlo con el siguiente comando:
apt install mariadb-server -yUna vez que MariaDB esté instalado, inicia sesión en MariaDB con el siguiente comando:
mysqlUna vez que hayas iniciado sesión, crea un usuario y establece una contraseña con el siguiente comando:
MariaDB [(none)]> grant all on *.* to master@localhost identified by 'password';A continuación, limpia los privilegios y sal del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Instalar el servidor Tomcat
JasperReports se ejecuta en el servidor Tomcat. Por lo tanto, necesitarás instalarlo en tu servidor.
Primero, crea un usuario y grupo dedicados para Tomcat usando el siguiente comando:
groupadd tomcat
useradd -s /bin/bash -g tomcat -d /opt/tomcat tomcatA continuación, crea un directorio Tomcat con el siguiente comando:
mkdir /opt/tomcatA continuación, descarga Tomcat 8 desde su sitio web oficial usando el siguiente comando:
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gzA continuación, extrae el archivo descargado en el directorio /opt/tomcat:
tar -xzvf apache-tomcat-8.5.82.tar.gz -C /opt/tomcat --strip-components=1A continuación, establece los permisos y la propiedad adecuados en el directorio Tomcat:
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/bin/*.sh'Crear un archivo de servicio Systemd para Tomcat
A continuación, necesitarás crear un archivo de servicio systemd para gestionar el servicio Tomcat. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/tomcat.serviceAgrega las siguientes líneas:
[Unit]
Description=Tomcat webs servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms1024M -Xmx2048M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Guarda y cierra el archivo, luego recarga el demonio systemd para aplicar los cambios:
systemctl daemon-reloadA continuación, inicia el servicio Tomcat con el siguiente comando:
systemctl start tomcatTambién puedes verificar el estado del servicio Tomcat con el siguiente comando:
systemctl status tomcatObtendrás la siguiente salida:
? tomcat.service - Tomcat webs servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-04 06:06:39 UTC; 6s ago
Process: 6867 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 6874 (java)
Tasks: 29 (limit: 4579)
Memory: 118.4M
CPU: 4.427s
CGroup: /system.slice/tomcat.service
??6874 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djav>
Sep 04 06:06:39 ubuntu2204 systemd[1]: Starting Tomcat webs servlet container...
Sep 04 06:06:39 ubuntu2204 startup.sh[6867]: Tomcat started.
Sep 04 06:06:39 ubuntu2204 systemd[1]: Started Tomcat webs servlet container.
Instalar y configurar JasperReports
Primero, cambia el usuario a Tomcat y descarga el archivo de JasperReports con el siguiente comando:
su - tomcat
wget https://sourceforge.net/projects/jasperserver/files/JasperServer/JasperReports%20Server%20Community%20edition%208.0.0/TIB_js-jrs-cp_8.0.0_bin.zipUna vez que la descarga esté completa, descomprime el archivo descargado con el siguiente comando:
unzip TIB_js-jrs-cp_8.0.0_bin.zipA continuación, copia el archivo de propiedades de MySQL con el siguiente comando:
cp jasperreports-server-cp-8.0.0-bin/buildomatic/sample_conf/mysql_master.properties jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.propertiesA continuación, edita el archivo de propiedades de MySQL usando el siguiente comando:
nano jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.propertiesDefine tu ruta de Tomcat y los detalles de configuración de la base de datos como se muestra a continuación:
CATALINA_HOME = /opt/tomcat
CATALINA_BASE = /opt/tomcat
dbHost=localhost
dbUsername=master
dbPassword=password
encrypt = true
Guarda y cierra el archivo, luego instala JasperReports con el siguiente comando:
cd jasperreports-server-cp-8.0.0-bin/buildomatic/
./js-install-ce.shUna vez que la instalación esté completa, obtendrás la siguiente salida:
[echo] Found Groovy in import lib directory
deploy-webapp-datasource-configs:
[echo] --- (app-server.xml:deploy-webapp-datasource-configs) ---
[echo] jsEdition = ce
[echo] warFileDistSourceDir = /opt/tomcat/jasperreports-server-cp-8.0.0-bin/buildomatic/../jasperserver.war
[echo] warTargetDir = /opt/tomcat/webapps/jasperserver
[echo] webAppName = jasperserver
[echo] webAppNameCE = jasperserver
[echo] webAppNamePro = jasperserver-pro
[echo] webAppNameSrc = jasperserver
[echo] webAppNameDel = jasperserver, warTargetDirDel = /opt/tomcat/webapps/jasperserver
[copy] Copying 9 files to /opt/tomcat/webapps/jasperserver
scalableAdhoc-refinement:
deploy-webapp-ce:
install-normal-ce:
[echo] Installation successfully completed!
BUILD SUCCESSFUL
Total time: 1 minute 26 seconds
Checking Ant return code: OK
----------------------------------------------------------------------
A continuación, edita el archivo de configuración de políticas de Tomcat:
nano /opt/tomcat/conf/catalina.policyAgrega las siguientes líneas:
grant codeBase "file:/groovy/script" {
permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}classes${file.separator}-", "read";
permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}lib${file.separator}*", "read";
permission java.util.PropertyPermission "groovy.use.classvalue", "read";
};
Guarda y cierra el archivo, luego edita el archivo de configuración de la aplicación:
nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xmlAgrega las siguientes líneas:
Guarda y cierra el archivo, luego sal del usuario de Tomcat:
exitA continuación, reinicia el servicio Tomcat para aplicar los cambios.
systemctl restart tomcatAcceder a la interfaz web de JasperReports
En este punto, JasperReports está instalado y configurado. Ahora puedes acceder a él usando la URL http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/. Deberías ver la página de inicio de sesión de JasperReports:

Proporciona el nombre de usuario: jasperadmin y contraseña: jasperadmin y luego haz clic en el botón Iniciar sesión. Deberías ver el panel de control de JasperReports en la siguiente página:

Configurar Nginx como un proxy inverso para JasperReports
Primero, instala el paquete del servidor web Nginx con el siguiente comando:
apt install nginxA continuación, crea un archivo de configuración de host virtual de Nginx con el siguiente comando:
nano /etc/nginx/conf.d/jasperreports.confAgrega las siguientes configuraciones:
upstream tomcat {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
server_name jasper.example.com;
location = / {
return 301 http://jasper.example.com/jasperserver/;
}
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat/;
}
}
Guarda y cierra el archivo, luego verifica la configuración de Nginx:
ginx -tObtendrás la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, recarga el servicio Nginx para aplicar los cambios de configuración:
systemctl restart nginxPuedes verificar el estado de Nginx usando el siguiente comando:
systemctl status nginxDeberías ver la siguiente salida:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-04 14:51:10 UTC; 7s ago
Docs: man:nginx(8)
Process: 7644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 7645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 7646 (nginx)
Tasks: 3 (limit: 4579)
Memory: 3.3M
CPU: 45ms
CGroup: /system.slice/nginx.service
??7646 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??7647 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "```
## Conclusión
En esta publicación, aprendiste cómo instalar JasperReports en Ubuntu 22.04. También aprendiste cómo configurar Nginx como un proxy inverso para JasperReports. Ahora puedes usar esta herramienta para generar e incrustar informes en aplicaciones Java o no Java.Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.