ฉันได้สร้าง apache nifi ami โดยใช้ตัวจัดเตรียมแบบ ansible ของ packer และ packer แล้ว NiFi เริ่มผูกกับ IP ย้อนกลับเท่านั้นที่เป็นค่าเริ่มต้นดังที่เห็นได้จาก conf/nifi.properties
nifi.web.http.host=127.0.0.1
nifi.web.http.port=8080
nifi.web.http.network.interface.default=
ไม่สามารถทราบที่อยู่ IP ที่จะเชื่อมโยงในขณะที่สร้าง AMI ดังนั้นเราจึงปล่อยคุณสมบัตินี้ไว้ตามที่เป็นอยู่และสร้างกฎ iptables แทน ตามเอกสาร ที่นี่, ที่นี่ และ ที่นี่
คำสั่งที่ฉันตั้งใจจะเรียกใช้
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
นี่คืองานที่ต้องทำ
- ชื่อ: การส่งต่อ IP ทั้งหมด
ระบบ:
ชื่อ: net.ipv4.ip_forward
ค่า: "1"
sysctl_set: ใช่
สถานะ: ปัจจุบัน
โหลดซ้ำ: ใช่
แท็ก:
- บันทึก
# ตั้งค่าพอร์ต iptables สร้างจาก ip สาธารณะเป็น 127.0.0.1:8080
# นี่เป็นเพราะเราไม่สามารถกำหนดค่า IP ที่ NiFi รับฟังได้ในขณะนั้น
# ของการสร้าง AMI ดังนั้นมันจึงรันการฟัง 127.0.0.1:8080 เท่านั้น
- ชื่อ: อนุญาตการกำหนดเส้นทางการรับส่งข้อมูลจาก AWS NIC ที่แนบมาให้ย้อนกลับ
ระบบ:
ชื่อ: net.ipv4.conf.all.route_localnet
ค่า: "1"
sysctl_set: ใช่
สถานะ: ปัจจุบัน
โหลดซ้ำ: ใช่
แท็ก:
- บันทึก
- ชื่อ: เปิดใช้งานการส่งต่อพอร์ตสำหรับบล็อก CIDR สาธารณะไปยัง Nifi localhost พอร์ต 8080
iptables:
ตาราง: แนท
ห่วงโซ่: PREROUTING
โปรโตคอล: tcp
คู่ : ทีซีพี
พอร์ตปลายทาง: "80"
กระโดด: DNAT
to_destination: "127.0.0.1:8080"
แท็ก:
- บันทึก
เมื่อฉันสร้างอินสแตนซ์จาก AMI นี้ sudo iptables -t nat -v -L PREROUTING -n --line-number
ผลตอบแทน ไม่มีผลลัพธ์.