Trang chủTin tứcSử dụng Docker Compose cấu hình Netbox + Nginx làm Reverse Proxy
Sử dụng Docker Compose cấu hình Netbox + Nginx làm Reverse Proxy

Khám phá mô hình và cách sử dụng Docker Compose để thiết lập cấu hình Netbox và Nginx làm Reverse Proxy. Hướng dẫn chi tiết giúp bạn dễ dàng thực hiện.

Docker Compose là một công cụ mạnh mẽ giúp triển khai các ứng dụng đa container một cách dễ dàng và hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình ứng dụng Netbox kết hợp với Nginx làm Reverse Proxy khi sử dụng Docker Compose. Mô hình triển khai bao gồm nhiều container, như Netbox, PostgreSQL, Redis và Nginx, giúp ứng dụng hoạt động mượt mà với hiệu suất tối ưu. Cùng khám phá từng bước thực hiện chi tiết và các tùy chỉnh cần thiết để cài đặt thành công trên Docker Host.

1. Mô hình docker compose mà tôi build

mô hình docker compose

Mô hình này biểu thị cách cấu trúc của một ứng dụng NetBox triển khai trên Docker, với sự phối hợp giữa nhiều container khác nhau (NetBox, PostgreSQL, Redis, Nginx) và mạng nội bộ để cung cấp một ứng dụng quản lý mạng đầy đủ chức năng.

Docker Host:

  • Đây là máy chủ vật lý hoặc máy ảo nơi Docker được cài đặt và chạy. Tất cả các container sẽ hoạt động bên trong máy chủ này.

Netbox_net (Network):

  • Đây là mạng Docker nội bộ kết nối các container với nhau. Các container sẽ giao tiếp qua mạng này.

Container NetBox:

  • Đây là container chính chứa ứng dụng NetBox (một công cụ quản lý mạng). NetBox sẽ sử dụng các dịch vụ từ những container khác như PostgreSQL và Redis để hoạt động.

Container PostgreSQL:

  • Đây là container chứa cơ sở dữ liệu PostgreSQL. NetBox sẽ lưu trữ dữ liệu của nó trong cơ sở dữ liệu này.

Container Redis:

  • Redis là hệ thống lưu trữ bộ nhớ tạm (cache). Container Redis sẽ được sử dụng bởi NetBox để cải thiện hiệu năng, lưu trữ dữ liệu tạm thời.

Container Nginx:

  • Nginx là một máy chủ web được sử dụng để xử lý yêu cầu từ phía người dùng đến NetBox. Container này sẽ lắng nghe và chuyển tiếp các yêu cầu HTTP/HTTPS đến các thành phần NetBox tương ứng.

Expose Ports:

  • Cổng 80 và 443 của container Nginx được mở ra cho mạng bên ngoài, cho phép người dùng có thể truy cập vào ứng dụng NetBox từ trình duyệt web thông qua HTTP hoặc HTTPS.
  • Cổng ens160 là cổng mạng của máy chủ Docker host, cho phép các container kết nối với mạng bên ngoài.

2. Hướng dẫn sử dụng Docker Compose

Đầu tiên bạn sẽ cần download repo này về. Lưu ý bắt buộc phải di chuyển đến thư mục /opt nếu không file active sẽ có thể bị lỗi.

cd /opt/

git clone https://github.com/thanhquang99/Docker

Tiếp theo ta sẽ chạy file docker compose

cd /opt/Docker/netbox/

docker compose up

Quá trình chạy docker compose
Quá trình chạy docker compose

Ta có thể tùy chỉnh biến trong file docker compose để thay đổi user và password của netbox hay postgres

vi /opt/Docker/netbox/docker-compose.yml

Các biến môi trường để chạy docker compose 
Các biến môi trường để chạy docker compose 

Đợi thời gian khoảng 5 phút để docker compose chạy xong ta sẽ tạo thêm 1 terminal mới ctrl +shirt +u để tiến hành active bao gòm tạo super user và cấu hình nginx làm reverse proxy.

cd /opt/Docker/netbox/

chmod +x active.sh

. active.sh

Bây giờ ta cần nhập thông tin từ màn hình vào (yêu cầu đúng cú pháp được gợi ý), thông tin sẽ bao gồm tên miền của netbox, gmail, user và password của netbox.

Nhập thông tin theo mẫu
Nhập thông tin theo mẫu

Bây giờ chỉ cần đợi cho quá trình hoàn tất. Sau khi quá trình hoàn tất nhưng mà bạn quên thông tin thì vẫn có thể xem lại.

root@Quang-docker:~# cat thongtin.txt

Sửa file hosts thành 172.16.66.41 quang.netbox.com

Link truy cập netbox: https://quang.netbox.com

Netbox User: admin

Netbox password: fdjhuixtyy5dpasfn

netbox mail: quang@gmail.com

Sửa file hosts thành 172.16.66.41 quang.netbox.com

Link truy cập netbox: https://quang.netbox.com

Netbox User: fdjhuixtyy5dpasfn

Netbox password: fdjhuixtyy5dpasfn

netbox mail: quang@gmail.com

Tổng kết

Trên đây là hướng dẫn của mình cho các bạn sử dụng docker netbox kết hợp với nginx để build một cách nhanh chóng với chỉ một vài lệnh mà ai cũng có thể làm được. Bài viết trước là hướng dẫn các bạn build theo nhà phát triển mà không cần nginx, bạn có thể xem lại ở đây. Nhưng trong bài viết này mình đã build thêm nginx và ssl. Việc có thêm ssl chính là để có thể mã hóa dữ liệu, chính việc mã hóa dữ liệu là bước bảo mật đầu tiên để phòng tránh tấn công mạng.

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật