Chúng tôi hiện đang sử dụng HAproxy để chuyển hướng lưu lượng truy cập đến miền của chúng tôi ví dụ.tên miền
đến các vùng chứa của chúng tôi, chỉ có thể truy cập được qua giao diện cục bộ (ví dụ: 127.0.0.1:12000:8080
Để đạt được điều này, cấu hình hiện tại của chúng tôi trông giống như sau:
mặc định
chế độ http
hết thời gian kết nối 5000
kiểm tra thời gian chờ 5000
máy khách hết thời gian 20000
máy chủ hết thời gian chờ 20000
tên miền giao diện người dùng
ràng buộc *:80
liên kết *:443 ssl crt /etc/haproxy/certs/domain.cert
liên kết *:11000-11199 ssl crt /etc/haproxy/certs/domain.cert
sơ đồ chuyển hướng yêu cầu http trừ khi { ssl_fc } # ssl_fc trả về true nếu yêu cầu đã sử dụng SSL
http-request set-header X-Forwarded-Port %[dst_port]
tiêu đề bổ sung yêu cầu http X-Forwarded-Proto https nếu { ssl_fc }
# Cổng 11000-11099 được dành riêng cho lưu lượng an toàn
acl safe_0_host dst_port 11000
acl safe_1_host dst_port 11001
# Cổng 11100-11199 được dành riêng cho lưu lượng truy cập không an toàn
acl không an toàn_0_host dst_port 11100
acl không an toàn_1_host dst_port 11101
# Phụ trợ an toàn
use_backend secure_0 nếu secure_0_host
use_backend secure_1 nếu secure_1_host
# Phụ trợ không an toàn
use_backend không an toàn_0 nếu không an toàn_0_host
sử dụng_backend không an toàn_1 nếu không an toàn_1_host
# Phụ trợ dự phòng
default_backend dự phòng_backend
phụ trợ dự phòng_backend
vị trí chuyển hướng yêu cầu http https://example.domain mã 302
# Phụ trợ an toàn
phụ trợ an toàn_0
máy chủ safe_0 127.0.0.1:12000 ssl không xác minh
phụ trợ an toàn_1
máy chủ secure_1 127.0.0.1:12001 ssl không xác minh
# Phụ trợ không an toàn
phụ trợ không an toàn_0
máy chủ không an toàn_0 127.0.0.1:12100
phụ trợ không an toàn_1
máy chủ không an toàn_1 127.0.0.1:12101
Thiết lập này hoạt động nhưng thực sự rất tẻ nhạt khi thêm từng ánh xạ cổng theo cách thủ công và nó cũng làm tôi khó chịu, rằng tôi phải sử dụng các cổng khác nhau (12000-12099
) cho các bộ chứa docker, hơn là tôi đang nghe bằng HAproxy.
Bằng cách nào đó có thể chỉ cho cấu hình biết rằng một portrange đã cho (11000-11099
) nên được chuyển qua 127.0.0.1:11000-11099
?