Cài đặt WildFly Java Application Server với Nginx Reverse Proxy trên Rocky Linux 8

theanh

Administrator
Nhân viên
WildFly là một máy chủ ứng dụng mã nguồn mở và đa nền tảng do RedHat phát triển. Nó được viết bằng Java và được sử dụng để phát triển các ứng dụng Java. Nó đơn giản, linh hoạt, nhẹ và dựa trên các hệ thống con có thể cắm thêm hoặc xóa theo yêu cầu của bạn. Nó đi kèm với một bảng điều khiển đơn giản và thân thiện với người dùng và nhằm mục đích cung cấp cho người dùng môi trường thời gian chạy Java nhanh và ổn định.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Wildfly với Nginx làm proxy ngược trên Rocky Linux 8. Các bước tương tự cũng sẽ hoạt động trên AlmaLinux 8 và CentOS 8.

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

  • Một máy chủ chạy Rocky Linux 8 / AlmaLinux 8 hoặc centOS 8.
  • Một mật khẩu gốc được cấu hình cho máy chủ.

Cài đặt Java​

Wildfly là một ứng dụng dựa trên Java nên Java phải được cài đặt trong máy chủ của bạn. Nếu chưa cài đặt, bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install java-11-openjdk-devel -y
Sau khi cài đặt Java, bạn có thể xác minh phiên bản Java đã cài đặt bằng lệnh sau:
Mã:
java --version
Bạn sẽ nhận được kết quả sau:
Mã:
openjdk 11.0.8 2020-07-14 LTSOpenJDK Runtime Environment 18.9 (bản dựng 11.0.8+10-LTS)OpenJDK Máy chủ VM 64-Bit 18.9 (bản dựng 11.0.8+10-LTS, chế độ hỗn hợp, chia sẻ)

Cài đặt Wildfly​

Trước khi cài đặt Wildfly, bạn sẽ cần tạo một người dùng và nhóm riêng để chạy Wildfly. Bạn có thể tạo chúng bằng lệnh sau:
Mã:
groupadd --system wildfly
useradd -s /sbin/nologin --system -d /opt/wildfly -g wildfly wildfly
Tiếp theo, bạn sẽ cần tải xuống phiên bản mới nhất của Wildfly từ trang web chính thức của họ. Tại thời điểm viết hướng dẫn này, phiên bản mới nhất có sẵn của Wildfly là 20.0.1. Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz
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ã:
tar -xvzf /root/wildfly-20.0.1.Final.tar.gz
Tiếp theo, sao chép thư mục đã giải nén vào /opt bằng lệnh sau:
Mã:
mv wildfly-20.0.1.Final /opt/wildfly
Tiếp theo, tạo một thư mục để lưu trữ các tệp cấu hình Wildfly:
Mã:
mkdir /etc/wildfly
Tiếp theo, sao chép tất cả các tệp cần thiết vào vị trí mong muốn bằng lệnh sau:
Mã:
cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
Tiếp theo, cấp quyền sở hữu và quyền hợp lệ cho thư mục và tệp wildfly bằng lệnh sau:
Mã:
chmod +x /opt/wildfly/bin/launch.sh
chown -R wildfly:wildfly /opt/wildfly
chmod -R +x /opt/wildfly/
Tiếp theo, tải lại daemon systemd bằng lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động dịch vụ Wildfly và cho phép dịch vụ này khởi động khi khởi động bằng lệnh sau lệnh:
Mã:
systemctl start wildfly
systemctl enable wildfly
Bây giờ bạn có thể xác minh trạng thái dịch vụ Wildfly bằng lệnh sau:
Mã:
systemctl status wildfly
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? wildfly.service - Máy chủ ứng dụng WildFly Đã tải: đã tải (/etc/systemd/system/wildfly.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2020-09-13 05:57:22 EDT; 16 giây trước PID chính: 31834 (launch.sh) Nhiệm vụ: 123 (giới hạn: 12527) Bộ nhớ: 304,1M CGroup: /system.slice/wildfly.service ??31834 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0 ??31835 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 ??31925 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru>13/9 05:57:22 centos8 systemd[1]: Đã khởi động Máy chủ ứng dụng WildFly.
Lúc này Wildfly đã được cài đặt và khởi động. Theo mặc định, máy chủ ứng dụng wildfly đang lắng nghe trên cổng 8080. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -tunelp | grep 8080
Bạn sẽ nhận được đầu ra sau:
Mã:
tcp LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=31925,fd=478)) uid:989 ino:59014 sk:9
Bảng điều khiển quản trị Wildfly đang lắng nghe trên cổng 9990. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -tunelp | grep 9990
Bạn sẽ nhận được kết quả sau:
Mã:
tcp LISTEN 0 50 127.0.0.1:9990 0.0.0.0:* users:(("java",pid=31925,fd=138)) uid:989 ino:59017 sk:7

Thêm Người dùng Quản trị Wildfly​

Để truy cập bảng điều khiển quản trị WildFly, bạn sẽ cần tạo một người dùng quản trị cho Wildfly. Bạn có thể tạo bằng lệnh sau:
Mã:
/opt/wildfly/bin/add-user.sh
Bạn sẽ được yêu cầu chọn loại người dùng bạn muốn thêm như hiển thị bên dưới:
Mã:
Bạn muốn thêm loại người dùng nào? a) Người dùng quản lý (mgmt-users.properties) b) Người dùng ứng dụng (application-users.properties)(a): a
Nhập a cho người dùng quản lý và nhấn Enter. Bạn sẽ thấy kết quả sau:
Mã:
Nhập thông tin chi tiết về người dùng mới để thêm.Sử dụng miền 'ManagementRealm' như đã tìm thấy từ các tệp thuộc tính hiện có.Tên người dùng: wildflyadmin
Cung cấp tên người dùng mong muốn của bạn và nhấn Enter. Bạn sẽ thấy kết quả sau:
Mã:
Các khuyến nghị về mật khẩu được liệt kê bên dưới. Để sửa đổi các hạn chế này, hãy chỉnh sửa tệp cấu hình add-user.properties. - Mật khẩu phải khác với tên người dùng - Mật khẩu không được là một trong các giá trị bị hạn chế sau {root, admin, administrator} - Mật khẩu phải chứa ít nhất 8 ký tự, 1 ký tự chữ cái, 1 chữ số, 1 ký hiệu không phải chữ và sốMật khẩu:Nhập lại mật khẩu:
Cung cấp mật khẩu của bạn và nhấn Enter. Bạn sẽ thấy kết quả đầu ra sau:
Mã:
Bạn muốn người dùng này thuộc nhóm nào? (Vui lòng nhập danh sách phân cách bằng dấu phẩy hoặc để trống nếu không có)[ ]:Sắp thêm người dùng 'wildflyadmin' cho miền 'ManagementRealm'Điều này có đúng không? cóĐã thêm người dùng 'wildflyadmin' vào tệp '/opt/wildfly/standalone/configuration/mgmt-users.properties'Đã thêm người dùng 'wildflyadmin' vào tệp '/opt/wildfly/domain/configuration/mgmt-users.properties'Đã thêm người dùng 'wildflyadmin' với các nhóm vào tệp '/opt/wildfly/standalone/configuration/mgmt-groups.properties'Đã thêm người dùng 'wildflyadmin' với các nhóm vào tệp '/opt/wildfly/domain/configuration/mgmt-groups.properties'Đã thêm người dùng 'wildflyadmin' với các nhóm vào tệp '/opt/wildfly/domain/configuration/mgmt-groups.properties'Người dùng mới này có được sử dụng cho một quy trình AS để kết nối với một quy trình AS khác không?ví dụ: cho bộ điều khiển máy chủ phụ kết nối với máy chủ chính hoặc cho kết nối Remoting cho các cuộc gọi EJB từ máy chủ đến máy chủ.có/không? cóĐể biểu diễn người dùng, hãy thêm nội dung sau vào định nghĩa server-identities
Tại thời điểm này, người dùng quản lý Wildfly của bạn đã được tạo. Bạn có thể tiến hành bước tiếp theo.

Cấu hình Tường lửa và SELinux​

Theo mặc định, SELinux được bật trong Rocky Linux 8. Vì vậy, bạn sẽ cần cấu hình SELinux cho Wildfly. Bạn có thể thực hiện điều này bằng lệnh sau:
Mã:
semanage fcontext -a -t bin_t "/opt/wildfly/bin(/.*)?"
restorecon -Rv /opt/wildfly/bin/
setsebool -P httpd_can_network_connect 1
Tiếp theo, bạn sẽ cần cho phép các cổng 8080, 9990 và 80 đi qua tường lửa. Bạn có thể thực hiện bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=9990/tcp
firewall-cmd --permanent --add-port=80/tcp
Tiếp theo, tải lại firewalld để áp dụng các thay đổi.
Mã:
firewall-cmd --reload
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Bảng điều khiển quản trị Wildfly​

Theo mặc định, bảng điều khiển quản trị Wildfly chỉ có thể truy cập từ máy chủ cục bộ. Bạn sẽ cần chỉnh sửa /opt/wildfly/bin/launch.sh và thực hiện một số thay đổi để truy cập bên ngoài.
Mã:
nano /opt/wildfly/bin/launch.sh
Tìm dòng sau:
Mã:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
Và thay thế bằng dòng sau:
Mã:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Wildfly để áp dụng các thay đổi.
Mã:
systemctl restart wildfly
Bây giờ, hãy mở trình duyệt web của bạn và truy cập bảng điều khiển quản trị Wildfly bằng URL http://your-server-ip:9990. Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu như hiển thị bên dưới:



Cung cấp tên người dùng, mật khẩu quản trị viên Wildfly và nhấp vào nút Đăng nhập . Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị Wildfly trong màn hình sau:


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

Theo mặc định, ứng dụng Wildfly có thể truy cập được trên cổng 8080. Vì vậy, cách được khuyến nghị là cấu hình Nginx làm proxy ngược để có thể truy cập bằng cổng 80.

Trước tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau;
Mã:
dnf install nginx -y
Sau khi cài đặt, hãy tạo tệp cấu hình Wildfly mới bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/wildfly.conf
Thêm các dòng sau:
Mã:
upstream wildfly { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;}server { listen 80; server_name your-server-ip; 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://wildfly/; }}
Lưu và đóng tệp, sau đó kiểm tra Nginx xem có lỗi cấu hình nào không bằng lệnh sau:
Mã:
nginx -t
Nếu mọi thứ ổn, 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, khởi động Nginx và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start nginx
systemctl enable nginx
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau:
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Drop-In: /usr/lib/systemd/system/nginx.service.d ??php-fpm.conf Đang hoạt động: đang hoạt động (đang chạy) từ CN 2020-09-13 06:03:37 EDT; 5 giây trước Tiến trình: 1775 ExecStart=/usr/sbin/nginx (mã=thoát, trạng thái=0/THÀNH CÔNG) Tiến trình: 1773 ExecStartPre=/usr/sbin/nginx -t (mã=thoát, trạng thái=0/THÀNH CÔNG) Tiến trình: 1771 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 1776 (nginx) Nhiệm vụ: 3 (giới hạn: 12527) Bộ nhớ: 5,4M CGroup: /system.slice/nginx.service ??1776 nginx: tiến trình chính /usr/sbin/nginx ??1777 nginx: tiến trình công nhân ??1778 nginx: tiến trình công nhân13 tháng 9 06:03:37 centos8 systemd[1]: Đã dừng nginx HTTP và máy chủ proxy ngược.13/09 06:03:37 centos8 systemd[1]: Đang khởi động máy chủ proxy ngược và HTTP nginx...13/09 06:03:37 centos8 nginx[1773]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok13/09 06:03:37 centos8 nginx[1773]: nginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công13/09 06:03:37 centos8 systemd[1]: Đã khởi động máy chủ proxy ngược và HTTP nginx.
Tại thời điểm này, Nginx đã được cài đặt và cấu hình để phục vụ ứng dụng Wildfly của bạn. Bây giờ bạn có thể truy cập ứng dụng Wildfly bằng URL http://your-server-ip. Bạn sẽ thấy màn hình sau:


Kết luận​

Trong hướng dẫn này, chúng ta đã tìm hiểu cách cài đặt Wildfly và kích hoạt quyền truy cập từ xa trên Rocky Linux 8. Chúng ta cũng đã cấu hình Nginx làm proxy ngược để truy cập Wildfly thông qua cổng 80. Bây giờ, bạn có thể bắt đầu xây dựng ứng dụng Java và quản lý ứng dụng đó từ bảng điều khiển quản trị Widlfly.
Mã:
 
Back
Bên trên