Khi triển khai các website lên server, chúng ta sẽ thường có nhu cầu cài thêm một số ứng dụng chạy ở các port khác ngoài 80 và 443. Bài này sẽ hướnng dẫn bạn thêm một Reverse Proxy server trên OpenLiteSpeed để chạy được các ứng dụng như netdata port 19999, các ứng dụng nodejs port 3000 hoặc tùy bạn đặt,…
Trong nội dung bài viết này, mình sẽ:
- Hướng dẫn cài đặt netdata. tại domain thich.dev/netdata
- Hướng dẫn thêm ứng dụng netdata vào OpenLiteSpeed
- Hướng dẫn bảo mật netdata bằng htpasswd.
Cài netdata
Trước tiên việc chúng ta cần làm là cài netdata. Netdata có hướng dẫn rất cụ thể bạn có thể xem tại đây. Lưu ý là nếu bạn sử dụng OS x64 có thể bạn sẽ cần làm theo hướng dẫn này
Sau khi cài đặt, bạn vào ip:19999 để kiểm tra xem ok chưa nhé.
Nếu bạn không truy cập được thì có thể là do port 19999 bị chặn.
Chạy lệnh
sudo ufw allow 19999
Giờ cần dùng OpenLiteSpeed để reserve cho ứng dụng netdata, không cho truy cập trực tiếp từ bên ngoài vào nữa.
Tạo External App
Trong giao diện WebAdmin Console của OpenLiteSpeed (ip:7080), bạn vào Server Configuration > External App và thêm một ứng dụng web server như hình dưới
Tiếp theo vào Virtual Host mà bạn cần cài đặt để xem netdata tạo 1 liên kết để reserve ứng dụng netdata. Có nhiều cách để làm điều này, mình chọn cách tạo 1 context /netdata như sau:
Vào Tab Context, tạo mới 1 context, chọn loại là Proxy như sau:
Vì mình tạo context là /netdata nên mình cần enable rewrite
Bạn vào tab Rewrite, bật mod rewrite lên và thêm nội dung như sau:
RewriteRule ^/netdata(.*)$ http://netdata/$1 [P,L]
Lưu lại, sau đó khởi động lại OpenLiteSpeed rồi vào thich.dev/netdata để test thử nhé.
Đặt bảo mật netdata bằng htpasswd
Để hạn chế truy cập vào netdata, mình sẽ dùng htpasswd để tăng bảo mật, đồng thời tắt truy cập vào ip:19999 từ internet
Đặt htpasswd
Trong OpenLiteSpeed có hỗ trợ chúng ta cài đặt bảo mật ngay trên WebAdmin Console.
Sau đó bạn cần thêm user để đăng nhập
Click vào User DB Location sau đó nhấn nút Add, nhập các thông tin của user mới rồi nhấn Save
Sau đó bạn quay lại chỉnh sửa context /netdata. Chọn Realm
Thử truy cập vào thich.dev/netdata bạn sẽ thấy yêu cầu nhập tài khoản để đăng nhập.
Cuối cùng bạn ẩn port 19999 đi để tránh các truy cập trực tiếp vào nhé.
sudo ufw deny 19999
Tham khảo https://openlitespeed.org/kb/user-authentication-through-realms/