Nhiều dịch vụ sau một máy chủ với Nginx Proxy Manager
Khi một máy chủ chạy từ hai dự án trở lên, sớm muộn bạn cũng va vào cổng 80 và 443, vốn chỉ một tiến trình có thể lắng nghe. Một bài trên Habr từ blog Selectel hướng dẫn từng bước cách giải quyết điều này bằng Nginx Proxy Manager.
Tác giả giải thích trước vấn đề: các cổng đặc quyền, quy tắc một bộ lắng nghe cho mỗi cổng, lỗi CORS khi frontend và backend tách theo cổng, và việc thiếu HTTPS. Reverse proxy giải quyết bằng cách làm trung gian, định tuyến lưu lượng theo tên miền và đường dẫn. Một lợi ích khác là tường lửa chỉ cần mở cổng 22, 80 và 443.
Môi trường thử nghiệm là một VDS với 2 vCPU, 2 GB RAM và 40 GB NVMe, chạy Ubuntu 24.04 và Docker cài từ kho chính thức. Mạng được tạo bằng docker network create proxy, sau đó khởi chạy container jc21/nginx-proxy-manager với volume cho dữ liệu và chứng chỉ. Tôi thích việc trang quản trị ở cổng 81 chỉ gắn với 127.0.0.1 và truy cập qua đường hầm SSH.
Tiếp theo, cấu hình một proxy host: ô Forward Hostname điền tên container, còn chứng chỉ SSL được gắn ở tab SSL. Bài dùng traefik/whoami để kiểm thử. Trường hợp ứng dụng chạy trực tiếp trên máy chủ cũng được đề cập riêng: địa chỉ gateway của mạng Docker lấy bằng docker network inspect, và tường lửa được thiết lập để không thể truy cập ứng dụng bỏ qua proxy.
Cũng có một số điểm cần lưu ý. Các ví dụ trộn nhiều tên miền khác nhau, và image dùng thẻ latest nên khả năng tái lập có thể giảm theo thời gian. Dù vậy, đây là điểm khởi đầu tốt cho ai muốn chạy nhiều dịch vụ ở nhà hoặc trên VDS mà không phải sửa cấu hình nginx bằng tay.
Nguồn: Habr (blog Selectel)
Tác giả giải thích trước vấn đề: các cổng đặc quyền, quy tắc một bộ lắng nghe cho mỗi cổng, lỗi CORS khi frontend và backend tách theo cổng, và việc thiếu HTTPS. Reverse proxy giải quyết bằng cách làm trung gian, định tuyến lưu lượng theo tên miền và đường dẫn. Một lợi ích khác là tường lửa chỉ cần mở cổng 22, 80 và 443.
Môi trường thử nghiệm là một VDS với 2 vCPU, 2 GB RAM và 40 GB NVMe, chạy Ubuntu 24.04 và Docker cài từ kho chính thức. Mạng được tạo bằng docker network create proxy, sau đó khởi chạy container jc21/nginx-proxy-manager với volume cho dữ liệu và chứng chỉ. Tôi thích việc trang quản trị ở cổng 81 chỉ gắn với 127.0.0.1 và truy cập qua đường hầm SSH.
Tiếp theo, cấu hình một proxy host: ô Forward Hostname điền tên container, còn chứng chỉ SSL được gắn ở tab SSL. Bài dùng traefik/whoami để kiểm thử. Trường hợp ứng dụng chạy trực tiếp trên máy chủ cũng được đề cập riêng: địa chỉ gateway của mạng Docker lấy bằng docker network inspect, và tường lửa được thiết lập để không thể truy cập ứng dụng bỏ qua proxy.
Cũng có một số điểm cần lưu ý. Các ví dụ trộn nhiều tên miền khác nhau, và image dùng thẻ latest nên khả năng tái lập có thể giảm theo thời gian. Dù vậy, đây là điểm khởi đầu tốt cho ai muốn chạy nhiều dịch vụ ở nhà hoặc trên VDS mà không phải sửa cấu hình nginx bằng tay.
Nguồn: Habr (blog Selectel)
Bình luận 0
Hãy là người bình luận đầu tiên, bằng bất kỳ ngôn ngữ nào.
Đăng nhập để bình luận