Cách cài đặt JasperReports với Nginx Proxy trên Ubuntu 22.04

theanh

Administrator
Nhân viên
JasperReports là một công cụ báo cáo java miễn phí và mã nguồn mở cùng thư viện lớp giúp các nhà phát triển thêm khả năng báo cáo vào ứng dụng của họ. Đây là một máy chủ báo cáo độc lập và có thể nhúng, cung cấp chức năng báo cáo và phân tích. Với JasperReports, bạn có thể tạo các báo cáo chuyên nghiệp, bao gồm hình ảnh, biểu đồ và đồ thị. Công cụ này cũng giúp bạn viết nội dung phong phú lên màn hình, máy in và nhiều định dạng tệp. bao gồm HTML, PDF, XLS, RTF, CSV, XML, ODT và TXT.

Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách cài đặt JasperReports Server trên Ubuntu 22.04.

Điều kiện tiên quyết​

  • Một máy chủ chạy Ubuntu 22.04.
  • Một tên miền hợp lệ được trỏ đến bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt Java JDK​

JasperReports dựa trên Java, vì vậy bạn sẽ cần cài đặt Java JDK trên máy chủ của mình. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt install default-jdk unzip wget -y
Sau khi Java được cài đặt, bạn có thể xác minh phiên bản Java bằng lệnh sau:
Mã:
java --version
Bạn sẽ nhận được phiên bản Java trong đầu ra sau:
Mã:
openjdk 11.0.16 2022-07-19Môi trường thời gian chạy OpenJDK (bản dựng 11.0.16+8-post-Ubuntu-0ubuntu122.04)OpenJDK Máy ảo máy chủ 64-Bit (bản dựng 11.0.16+8-post-Ubuntu-0ubuntu122.04, chế độ hỗn hợp, chia sẻ)

Cài đặt và cấu hình cơ sở dữ liệu MariaDB​

Bạn cũng sẽ cần cài đặt máy chủ cơ sở dữ liệu MariaDB vào hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt install mariadb-server -y
Sau khi MariaDB được cài đặt, hãy đăng nhập vào MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi bạn đã đăng nhập, hãy tạo người dùng và đặt mật khẩu bằng lệnh sau:
Mã:
MariaDB [(none)]> cấp tất cả trên *.* cho master@localhost được xác định bằng 'password';
Tiếp theo, xóa các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> xóa các đặc quyền;
MariaDB [(none)]> exit;

Cài đặt Tomcat Server​

JasperReports chạy trên máy chủ Tomcat. Vì vậy, bạn sẽ cần cài đặt nó vào máy chủ của mình.

Đầu tiên, tạo một người dùng và nhóm chuyên dụng cho Tomcat bằng lệnh sau:
Mã:
groupadd tomcat
useradd -s /bin/bash -g tomcat -d /opt/tomcat tomcat
Tiếp theo, tạo một thư mục Tomcat bằng lệnh sau:
Mã:
mkdir /opt/tomcat
Tiếp theo, tải xuống Tomcat 8 từ trang web chính thức của họ bằng lệnh sau:
Mã:
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz
Tiếp theo, giải nén tệp đã tải xuống vào thư mục /opt/tomcat:
Mã:
tar -xzvf apache-tomcat-8.5.82.tar.gz -C /opt/tomcat --strip-components=1
Tiếp theo, thiết lập quyền và quyền sở hữu thích hợp cho thư mục Tomcat:
Mã:
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Tạo tệp dịch vụ Systemd cho Tomcat​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ Tomcat. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/tomcat.service
Thêm các dòng sau:
Mã:
[Unit]Description=Tomcat webs servlet containerAfter=network.target[Service]Type=forkingUser=tomcatGroup=tomcatRestartSec=10Restart=alwaysEnvironment="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.shExecStop=/opt/tomcat/bin/shutdown.sh[Cài đặt]WantedBy=multi-user.target
Lưu và đóng tệp, sau đó tải lại daemon systemd để áp dụng các thay đổi:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động dịch vụ Tomcat bằng lệnh sau:
Mã:
systemctl start tomcat
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Tomcat bằng lệnh sau:
Mã:
systemctl status tomcat
Bạn sẽ nhận được kết quả sau:
Mã:
? tomcat.service - Bộ chứa servlet web Tomcat Đã tải: đã tải (/etc/systemd/system/tomcat.service; vô hiệu hóa; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2022-09-04 06:06:39 UTC; 6 giây trước Tiến trình: 6867 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) PID chính: 6874 (java) Nhiệm vụ: 29 (giới hạn: 4579) Bộ nhớ: 118,4M CPU: 4,427 giây 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>04/09 06:06:39 ubuntu2204 systemd[1]: Đang khởi động bộ chứa servlet web Tomcat...04/09 06:06:39 ubuntu2204 startup.sh[6867]: Đã khởi động Tomcat.04/09 06:06:39 ubuntu2204 systemd[1]: Đã khởi động trình chứa servlet web Tomcat.

Cài đặt và cấu hình JasperReports​

Trước tiên, chuyển người dùng sang Tomcat và tải xuống tệp JasperReports bằng lệnh sau:
Mã:
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.zip
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
unzip TIB_js-jrs-cp_8.0.0_bin.zip
Tiếp theo, sao chép tệp thuộc tính MySQL bằng lệnh sau:
Mã:
cp jasperreports-server-cp-8.0.0-bin/buildomatic/sample_conf/mysql_master.properties jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties
Tiếp theo, chỉnh sửa tệp thuộc tính MySQL bằng lệnh sau:
Mã:
nano jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties
Xác định đường dẫn Tomcat và thông tin chi tiết về cấu hình cơ sở dữ liệu như hiển thị bên dưới:
Mã:
CATALINA_HOME = /opt/tomcatCATALINA_BASE = /opt/tomcatdbHost=localhostdbUsername=masterdbPassword=passwordencrypt = true
Lưu và đóng tệp, sau đó cài đặt JasperReports bằng lệnh sau:
Mã:
cd jasperreports-server-cp-8.0.0-bin/buildomatic/
./js-install-ce.sh
Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả sau:
Mã:
[echo] Đã tìm thấy Groovy trong thư mục import libdeploy-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] Đang sao chép 9 tệp vào /opt/tomcat/webapps/jasperserverscalableAdhoc-refinement:deploy-webapp-ce:install-normal-ce: [echo] Quá trình cài đặt đã hoàn tất!XÂY DỰNG THÀNH CÔNGTổng thời gian: 1 phút 26 giâyĐang kiểm tra mã trả về của Ant: OK-----------------------------------------------------------------------------------
Tiếp theo, chỉnh sửa tệp cấu hình chính sách Tomcat:
Mã:
nano /opt/tomcat/conf/catalina.policy
Thêm các dòng sau:
Mã:
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";};
Lưu và đóng tệp, sau đó chỉnh sửa tệp cấu hình Ứng dụng:
Mã:
nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xml
Thêm các dòng sau:
Mã:
Lưu và đóng tệp, sau đó thoát khỏi người dùng Tomcat:
Mã:
exit
Tiếp theo, khởi động lại dịch vụ Tomcat để áp dụng các thay đổi.
Mã:
systemctl restart tomcat

Truy cập JasperReports Web UI​

Tại thời điểm này, JasperReports đã được cài đặt và cấu hình. Bây giờ bạn có thể truy cập bằng URL http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/. Bạn sẽ thấy trang đăng nhập JasperReports:



Cung cấp tên người dùng: jasperadminmật khẩu: jasperadmin sau đó nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển JasperReports trên trang sau:


Cấu hình Nginx làm Proxy ngược cho JasperReports​

Trước tiên, hãy cài đặt gói máy chủ web Nginx bằng lệnh sau:
Mã:
apt install nginx
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/jasperreports.conf
Thêm các cấu hình sau:
Mã:
upstream tomcat { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5; }server { server_name jasper.example.com;vị trí = / { trả về 301 http://jasper.example.com/jasperserver/; }vị trí / { 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/; }}
Lưu và đóng tệp, sau đó xác minh cấu hình Nginx:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, tải lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart nginx
Bạn có thể xác minh trạng thái Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: hoạt động (đang chạy) từ CN 2022-09-04 14:51:10 UTC; 7 giây trước Tài liệu: man:nginx(8) Tiến trình: 7644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 7645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 7646 (nginx) Nhiệm vụ: 3 (giới hạn: 4579) Bộ nhớ: 3,3M CPU: 45ms CGroup: /system.slice/nginx.service ??7646 "nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on;" ??7647 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""04/09 14:51:10 ubuntu2204 systemd[1]: Bắt đầu Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...04/09 14:51:10 ubuntu2204 systemd[1]: Bắt đầu Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Bây giờ bạn có thể truy cập JasperReports của mình bằng URL http://jasper.example.com.

Kết luận​

Trong bài đăng này, bạn đã học cách cài đặt JasperReports trên Ubuntu 22.04. Bạn cũng đã học cách cấu hình Nginx làm proxy ngược cho JasperReports. Bây giờ bạn có thể sử dụng công cụ này để tạo và nhúng báo cáo vào Ứng dụng Java hoặc không phải Java.
 
Back
Bên trên