Nginx - Pihole cluster load balancing

Trong bài viết này mình sẽ cùng bạn dựng DNS server với pihole và dùng nginx để làm load balancing.

Tổng quát luồng xử lý như sau:

  • (1) nginx nhận request cổng 53 cho phân giải DNS và cổng 8080 cho HTTP request
  • (2) nginx phân bổ request về 2 pihole chạy trên docker, lần lượt nghe ở các port: 531, 532, 8081, 8082
# DNS
DNS request :53 --> nginx :53 --> pihole_1 :531
                              --> pihole_2 :532

# HTTP
Admin user :8080 --> nginx :8080 --> pihole_1 :8081
                                 --> pihole_2 :8082