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.
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:
Bạn sẽ nhận được kết quả sau:
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:
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:
Tiếp theo, sao chép thư mục đã giải nén vào /opt bằng lệnh sau:
Tiếp theo, tạo một thư mục để lưu trữ các tệp cấu hình 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:
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:
Tiếp theo, tải lại daemon systemd bằng lệnh sau:
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:
Bây giờ bạn có thể xác minh trạng thái dịch vụ Wildfly bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
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:
Bạn sẽ nhận được đầu ra sau:
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:
Bạn sẽ nhận được kết quả sau:
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:
Nhập a cho người dùng quản lý và nhấn Enter. Bạn sẽ thấy kết quả sau:
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:
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:
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.
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:
Tiếp theo, tải lại firewalld để áp dụng các thay đổi.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Tìm dòng sau:
Và thay thế bằng dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Wildfly để áp dụng các thay đổi.
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:
Trước tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau;
Sau khi cài đặt, hãy tạo tệp cấu hình Wildfly mới bằng lệnh sau:
Thêm các dòng sau:
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:
Nếu mọi thứ ổn, bạn sẽ nhận được kết quả sau:
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:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
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:
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
Mã:
java --version
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
Mã:
wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz
Mã:
tar -xvzf /root/wildfly-20.0.1.Final.tar.gz
Mã:
mv wildfly-20.0.1.Final /opt/wildfly
Mã:
mkdir /etc/wildfly
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/
Mã:
chmod +x /opt/wildfly/bin/launch.sh
chown -R wildfly:wildfly /opt/wildfly
chmod -R +x /opt/wildfly/
Mã:
systemctl daemon-reload
Mã:
systemctl start wildfly
systemctl enable wildfly
Mã:
systemctl status wildfly
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.
Mã:
ss -tunelp | grep 8080
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
Mã:
ss -tunelp | grep 9990
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
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
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
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:
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
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
Mã:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=9990/tcp
firewall-cmd --permanent --add-port=80/tcp
Mã:
firewall-cmd --reload
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
Mã:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
Mã:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
Mã:
systemctl restart wildfly
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
Mã:
nano /etc/nginx/conf.d/wildfly.conf
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/; }}
Mã:
nginx -t
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
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
systemctl status nginx
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.
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ã: