Cách cài đặt GlassFish Java Application Server với Nginx Reverse Proxy trên AlmaLinux 9

theanh

Administrator
Nhân viên
GlassFish là một triển khai miễn phí và mã nguồn mở của Nền tảng Java EE do Eclipse phát triển. Đây là triển khai đầu tiên trên thế giới của nền tảng Java EE để triển khai các ứng dụng Java. GlassFish cung cấp kiến trúc có khả năng mở rộng với sự hỗ trợ của nhiều công nghệ Java, chẳng hạn như Enterprise JavaBeans, JPA, JavaServer Faces và JMS.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt GlassFish trên máy chủ AlmaLinux 9 với proxy ngược Nginx. Chúng tôi cũng đề cập đến cách bảo mật GlassFish bằng cách bật xác thực và thiết lập kết nối SSL/TLS an toàn để quản trị GlassFish.

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

Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Máy chủ AlmaLinux 9.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền cục bộ trỏ đến địa chỉ IP của máy chủ.

Thiết lập các phụ thuộc​

Trước tiên, bạn cần thiết lập hệ thống AlmaLinux của mình bằng cách thêm người dùng hệ thống sẽ được sử dụng để chạy GlassFish, sau đó cài đặt các gói Java OpenJDK.

Trước khi cài đặt bất kỳ gói nào, hãy tạo một người dùng hệ thống mới glassfish bằng lệnh bên dưới. Người dùng này sẽ có thư mục home mặc định là /opt/glassfish7, sẽ được sử dụng làm thư mục cài đặt cho GlassFish.
Mã:
sudo useradd -m -d /opt/glassfish7 -U -s /bin/false glassfish
Bây giờ hãy cài đặt Java OpenJDK 21 và giải nén các gói bằng lệnh bên dưới. Nhập y để tiếp tục cài đặt.
Mã:
sudo dnf install java-21-openjdk unzip nano

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22181%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy xác minh phiên bản Java bằng lệnh bên dưới. Đảm bảo bạn đã cài đặt Java 17 hoặc 21 trên máy chủ AlmaLinux của mình.
Mã:
java --version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22693%22%20height=%22124%22%3E%3C/svg%3E

Tải xuống gói GlassFish​

Sau khi bạn đã tạo người dùng hệ thống và cài đặt Java, bây giờ bạn có thể tải xuống gói GlassFish. Hãy truy cập trang tải xuống GlassFish và sao chép liên kết cho phiên bản mới nhất.

Tải xuống gói GlassFish bằng lệnh wget bên dưới.
Mã:
wget https://download.eclipse.org/ee4j/glassfish/glassfish-7.0.12.zip
Sau khi tải xuống, hãy giải nén tệp glassfish-7.0.12.zip vào thư mục /opt bằng lệnh unzip sau. Thao tác này sẽ giải nén GlassFish vào thư mục /opt/glassfish7.
Mã:
unzip glassfish-7.0.12.zip -d /opt
Cuối cùng, hãy thay đổi quyền sở hữu thư mục /opt/glassfish7 thành người dùng glassfish. Điều này là do bạn sẽ chạy GlassFish với tư cách là người dùng hệ thống glassfish.
Mã:
sudo chown -R glassfish:glassfish /opt/glassfish7

Thiết lập dịch vụ systemd cho GlassFish​

Trong hướng dẫn này, bạn sẽ chạy GlassFish với tư cách là dịch vụ systemd. Thao tác này sẽ chạy GlassFish ở chế độ nền và bạn có thể dễ dàng quản lý nó thông qua tiện ích systemctl.

Tạo tệp dịch vụ systemd mới /etc/systemd/system/glassfish7.service bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/systemd/system/glassfish7.service
Chèn cấu hình systemd bên dưới cho GlassFish.
Mã:
[Unit]
Description = GlassFish Server v7
After = syslog.target network.target

[Service]
User=glassfish
ExecStart=/opt/glassfish7/bin/asadmin start-domain
ExecReload=/opt/glassfish7/bin/asadmin restart-domain
ExecStop=/opt/glassfish7/bin/asadmin stop-domain
Type = forking

[Install]
WantedBy = multi-user.target
Lưu tệp và đóng trình chỉnh sửa khi hoàn tất.

Bây giờ hãy tải lại trình quản lý systemd để áp dụng tệp dịch vụ mới của bạn.
Mã:
sudo systemctl daemon-reload
Sau đó, khởi động và kích hoạt GlassFish bằng lệnh bên dưới. Sau khi khởi động, GlassFish sẽ chạy trên cổng 8080 và 4848.
Mã:
sudo systemctl start glassfish7
sudo systemctl enable glassfish7

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22668%22%20height=%22180%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh dịch vụ glassfish7 bằng lệnh bên dưới. Đảm bảo rằng dịch vụ glassfish7 được bật và đang chạy trên hệ thống của bạn.
Mã:
sudo systemctl status glassfish7

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22204%22%3E%3C/svg%3E

Thiết lập quản trị viên GlassFish​

Lúc này, GlasFish đang chạy như một dịch vụ systemd trên hệ thống của bạn. Bây giờ bạn cần xác nhận người dùng quản trị cho GlassFish và thiết lập enable-secure-admin để bảo mật quản trị GlassFish.

Trước tiên, hãy chạy lệnh sau để tạo người dùng quản trị mới cho cài đặt GlassFish của bạn.
Mã:
sudo -u glassfish /opt/glassfish7/bin/asadmin --port 4848 change-admin-password
Khi được nhắc nhập người dùng, hãy nhập người dùng mặc định là admin và nhấn ENTER khi được yêu cầu nhập mật khẩu. GlassFish mặc định không có mật khẩu.
Khi được nhắc thiết lập mật khẩu mới, hãy nhập mật khẩu của bạn và lặp lại.

Sau khi quá trình hoàn tất, bạn sẽ nhận được thông báo 'Lệnh change-admin-password đã thực hiện thành công'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22142%22%3E%3C/svg%3E


Sau khi cấu hình mật khẩu quản trị viên cho GlassFish, hãy chạy lệnh sau để bật tính năng secure-admin. Thao tác này sẽ tự động tạo chứng chỉ SSL/TLS cho GlassFish.
Mã:
sudo -u glassfish /opt/glassfish7/bin/asadmin --port 4848 enable-secure-admin
Nhập tên người dùng quản trị và mật khẩu cho GlassFish khi được yêu cầu. Sau khi quá trình thành công, bạn sẽ thấy đầu ra 'Lệnh enable-secure-admin đã thực hiện thành công'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22125%22%3E%3C/svg%3E


Cuối cùng, hãy khởi động lại dịch vụ glassfish7 để áp dụng các sửa đổi của bạn vào GlassFish. Sau khi lệnh được thực thi, cài đặt GlassFish của bạn sẽ được bảo mật, người dùng quản trị có mật khẩu mới và chứng chỉ TLS được tạo cho quản trị viên GlassFish.
Mã:
sudo systemctl restart glassfish7

Chạy GlassFish với proxy ngược Nginx​

Trong hướng dẫn này, bạn sẽ chạy GlassFish sau proxy ngược Nginx. Vì vậy, bây giờ bạn cần cài đặt Nginx vào máy chủ AlmaLinux của mình, sau đó tạo cấu hình khối máy chủ mới cho proxy ngược.

Cài đặt máy chủ web Nginx vào AlmaLinux của bạn bằng lệnh bên dưới. Nhập y để tiến hành cài đặt.
Mã:
sudo dnf install nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy tạo cấu hình khối máy chủ mới /etc/nginx/conf.d/glassfish.conf bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/nginx/conf.d/glassfish.conf
Chèn cấu hình sau để thiết lập proxy ngược cho GlassFish chạy theo mặc định trên cổng 8080. Đảm bảo thay đổi tên miền trong phần sau bằng tên miền cục bộ của bạn.
Mã:
upstream glassfish7 {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
listen 80;
server_name glassfish.howtoforge.local;

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://glassfish7/;
}
}
Khi bạn hoàn tất, hãy lưu và thoát tệp.

Bây giờ hãy xác minh cú pháp Nginx bằng lệnh bên dưới. Nếu bạn có cú pháp đúng, bạn sẽ nhận được kết quả 'cú pháp ok - thử nghiệm thành công'.
Mã:
sudo nginx -t
Sau đó, khởi động và kích hoạt Nginx trên máy chủ AlmaLinux của bạn bằng lệnh bên dưới.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22219%22%3E%3C/svg%3E


Sau khi bắt đầu, hãy xác minh dịch vụ Nginx để đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl status nginx
Bên dưới, bạn sẽ thấy dịch vụ Nginx đang chạy và được bật trên AlmaLinux.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E

Thiết lập Firewalld​

Khi Nginx đã hoạt động, bạn phải mở cổng HTTP trên máy chủ của mình thông qua firewalld. Ngoài ra, bạn cũng có thể mở cổng 4848 được quản trị viên GlassFish sử dụng.

Mở cả dịch vụ HTTP và HTTPS trên firewalld bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --add-service={http,https} --permanent
Mở cổng TCP 4848 sẽ được sử dụng để quản trị GlassFish.
Mã:
sudo firewall-cmd --add-port=4848/tcp --permanent
Bây giờ hãy tải lại firewalld để áp dụng các thay đổi của bạn vào firewalld. Sau đó, hãy xác minh các quy tắc được bật lis.
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Bạn có thể thấy bên dưới các dịch vụ HTTP, HTTPS và cổng 4848 đã được thêm vào firewalld.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22678%22%20height=%22322%22%3E%3C/svg%3E

Truy cập GlassFish​

Mở trình duyệt web của bạn và truy cập tên miền của bạn để sử dụng GlassFish, chẳng hạn như http://glassfish.howtoforge.local/. Nếu cài đặt thành công, bạn sẽ nhận được trang chỉ mục GlassFish như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22361%22%3E%3C/svg%3E


Bây giờ hãy mở một tab mới và truy cập http://glassfish.howtoforge.local:4848/ để truy cập vào trang quản trị GlassFish. Nhập quản trị viên mặc định cùng với mật khẩu của bạn, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22425%22%3E%3C/svg%3E


Nếu bạn có mật khẩu đúng, bạn sẽ thấy bảng điều khiển của GlassFish.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22478%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bây giờ bạn đã cài đặt thành công GlassFish trên máy chủ AlmaLinux 9. Bạn đã cài đặt GlassFish, cấu hình người dùng quản trị viên và quản trị viên bảo mật cho GlassFish. Cuối cùng, bạn cũng đã cài đặt và cấu hình Nginx làm proxy ngược cho cài đặt GlassFish của mình.
 
Back
Bên trên