Mặc định sau khi cài đặt Portainer để quản lý Docker, bạn sẽ truy cập Portainer thông qua port 9000 như dưới đây
http://<IP-máy-chủ>:9000/
Code language: JavaScript (javascript)
Làm sao để truy cập Portainer thông qua tên miền và được bảo mật bằng SSL, ví dụ như sử dụng https://portainer.thuanbui.me
để truy cập vào Portainer?
Bài viết này sẽ hướng dẫn bạn cách thiết lập Proxy Host cho Portainer trên Nginx Proxy Manager. Mục đích nhằm truy cập Portainer thông qua tên miền và được bảo mật bằng chứng chỉ SSL miễn phí của Let’s Encrypt.
Yêu cầu chuẩn bị
- Máy chủ đã được cài đặt Nginx Proxy Manager và Portainer. Bấm vào link để xem hướng dẫn.
- Đã có sẵn tên miền riêng (.com / .net / .me / …) và đã thiết lập A record cho tên miền phụ trỏ về IP của máy chủ.
Nếu cài đặt trên VPS miễn phí của Oracle, bạn cần phải mở thêm port 81 trên Subnet List và trên VPS để có thể truy cập vào Nginx Proxy Manager: xem hướng dẫn.
Tạo Proxy Host trên NPM
Truy cập vào Nginx Proxy Manager, tạo thêm Proxy Host cho tên miền portainer.thuanbui.me
. Bạn cần thay đổi lại thành tên miền cần dùng.
- Domain Names: portainer.thuanbui.me
- Scheme: http
- Forward Hostname / IP: nhập vào IP của máy chủ
- Forward Port: 9000
- Chọn thêm các mục Cache Assets, Block Common Exploits, Websockets Support
Bấm qua tab Custom locations, bấm Add location và nhập vào thông tin sau
- Define location:
/api/websocket
- Scheme: http
- Forward Hostname / IP:
<IP-máy-chủ>/api/websocket/
- Forward Port: 9000
Bấm tiếp qua tab SSL để tạo chứng chỉ bảo mật SSL
- SSL Certificate: chọn Request a new SSL Certificate
- Chọn Force SSL và HTTP/2 Support
- Chọn I Agree to the …
Bấm Save để lưu lại
Chờ vài phút để NPM xác thực tên miền, sau đó bạn sẽ thấy tên miền portainer.thuanbui.me
xuất hiện trong danh sách Proxy Hosts
Truy cập vào địa chỉ https://portainer.thuanbui.me
, Portainer đã hiện ra. Hura!
Chúc bạn thực hiện thành công!
Hi bạn,
Mình cấu hình như bạn nói thì bị lỗi 504 tiemout gateway, không biết là bị lỗi ở đâu, mong bạn hướng dẫn.
Cám ơn bạn!
Lỗi 504 là do Nginx Proxy Manager không kết nối được đến Portainer. Có thể do cấu hình khai báo Proxy Host sai, hoặc VPS chưa mở cổng 9000. Hoặc bạn có thể làm theo hướng dẫn này thì không cần mở port 9000 trên VPS: https://thuanbui.me/nginx-proxy-manager-reverse-proxy-docker-container/
Mình đã cung cấp ssl thành công cho domain bằng hướng dẫn này của bạn. Tuy nhiên gần đây mình nhận được thông báo chứng chỉ ssl sắp hết hạn, bạn có thể hướng dẫn cách gia hạn?
Trước giờ mình dùng thấy Nginx Proxy Manager nó luôn tự động gia hạn, mình không cần phải thao tác thủ công gia hạn bao giờ. Nếu máy bạn không tự động gia hạn thì có thể xoá proxy host đó đi và tạo lại.