Tôi đã xây dựng một apache nifi ami bằng cách sử dụng trình cung cấp ansible của trình đóng gói và trình đóng gói, NiFi bắt đầu bị ràng buộc chỉ IP loopback là mặc định, như có thể thấy từ conf/nifi.properties
nifi.web.http.host=127.0.0.1
nifi.web.http.port=8080
nifi.web.http.network.interface.default=
không thể biết địa chỉ IP để liên kết tại thời điểm tạo AMI, vì vậy chúng tôi để nguyên thuộc tính này và thay vào đó tạo các quy tắc iptables; như tài liệu đây, đây và đây
Các lệnh tôi định chạy
sudo sysctl net.ipv4.ip_forward=1
Sudo sysctl -w net.ipv4.conf.all.route_localnet=1
Sudo iptables -t nat -I PREROUTING -m tcp -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080
Đây là các nhiệm vụ ansible
- tên: Tất cả chuyển tiếp IP
hệ thống:
tên: net.ipv4.ip_forward
giá trị: "1"
sysctl_set: có
trạng thái: hiện tại
tải lại: có
thẻ:
- ghi chú
# Thiết lập định dạng cổng iptables từ ip công cộng thành 127.0.0.1:8080
# Điều này là do chúng tôi không thể định cấu hình IP mà NiFi lắng nghe vào thời điểm đó
# đang build AMI nên chạy nghe 127.0.0.1:8080 thôi
- tên: cho phép định tuyến lưu lượng từ AWS NIC được đính kèm tới loopback
hệ thống:
tên: net.ipv4.conf.all.route_localnet
giá trị: "1"
sysctl_set: có
trạng thái: hiện tại
tải lại: có
thẻ:
- ghi chú
- tên: Kích hoạt tính năng chuyển tiếp cho khối CIDR công khai sang cổng máy chủ cục bộ Nifi 8080
iptables:
bảng: tự nhiên
chuỗi: PREROUTING
giao thức: tcp
trận đấu: tcp
cổng đích: "80"
nhảy: DNAT
to_destination: "127.0.0.1:8080"
thẻ:
- ghi chú
Khi tôi xây dựng một phiên bản từ AMI này sudo iptables -t nat -v -L PREROUTING -n --line-number
lợi nhuận không kết quả.