สรุป - ต้องเพิ่ม whitelist ips ใน mysite1.example.com ตอนนี้เมื่อเพิ่มเข้ามาแล้วจะไม่สามารถใช้งานได้เนื่องจากทุกคำขอมาจากเซิร์ฟเวอร์โหลดบาลานซ์
ฉันทำงานเกี่ยวกับการตั้งค่าด้วยโฮสต์ Nginx ที่นั่งด้านหน้าพร้อมแบ็กเอนด์อัปสตรีมเพื่อโหลดแพ็กเก็ต tcp ทั้งหมดบนพอร์ต 443 ไปยังเซิร์ฟเวอร์แบ็กเอนด์
การกำหนดค่า nginx ของเซิร์ฟเวอร์ Loadbalancer ที่รัน nginx - เซิร์ฟเวอร์ C มีดังต่อไปนี้
ลำธาร {
ต้นน้ำ stream_backend {
แฮช $remote_addr สอดคล้อง;
เซิร์ฟเวอร์ 10.15.15.3:443; ##เซิฟเวอร์A
เซิร์ฟเวอร์ 10.15.15.9:443; ##เซิฟเวอร์บี
}
เซิร์ฟเวอร์ {
ฟัง 443;
proxy_pass stream_backend;
proxy_timeout 5 วินาที;
proxy_connect_timeout 5 วินาที;
}
}
เซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B มีด้านล่าง nginx.conf เป็นเซิร์ฟเวอร์เดียวกันกับแอพ
มีโฮสต์เสมือนสองโฮสต์ที่ทำงานในแต่ละโฮสต์ พวกเขาทำงานได้ดี
http {
เซิร์ฟเวอร์ {
server_name mysite1.example.com;
ฟัง *:443 ssl;
ฟัง [::]:443 ssl;
อนุญาต 123.45.85.220; #ดูเหมือนว่าจะไม่ได้ผล
ปฏิเสธทั้งหมด #ทำได้แค่นี้
ที่ตั้ง ^~ /static/ {
...
}
...
ssl_certificate file.pem;
ssl_certificate_key file.key;
}
เซิร์ฟเวอร์ {
server_name mysite2.example.com;
ฟัง *:443 ssl;
ฟัง [::]:443 ssl;
สถานที่ / บางสิ่งบางอย่าง {
...
}
สถานที่ /something2{
...
}
ssl_certificate file.pem;
ssl_certificate_key file.key;
}
}
สิ่งที่ฉันต้องการคือการอนุญาต ips เพียงไม่กี่รายการไปยังโฮสต์เสมือน mysite1.example.com
ปัญหาที่ฉันพบคือ nginx ที่ทำงานบนเซิร์ฟเวอร์ A และ B มองเห็น load balancer Ip เป็น Ip ของไคลเอ็นต์ ดังนั้นเมื่อพยายามเพิ่มอนุญาต IP; ปฏิเสธทั้งหมด ใช้งานไม่ได้กับโฮสต์ใด ๆ เนื่องจากมีโหลดบาลานเซอร์ IP ในคำขอทั้งหมดเป็น IP ไคลเอนต์
ใครช่วยแนะนำฉันเกี่ยวกับการเพิ่มการกำหนดค่าพร็อกซี IP เพื่อให้การตั้งค่าที่กล่าวถึงข้างต้นทำงานได้ดี
การตั้งค่าเสร็จสมบูรณ์ ยกเว้นปัญหารายการ IP ที่อนุญาตพิเศษ
p.s การยกเลิก SSl เกิดขึ้นที่เซิร์ฟเวอร์ส่วนหลัง เซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B
ฉันค้นหาผ่านเว็บและพบว่าสิ่งเหล่านี้มีประโยชน์ แต่ก็ยังไม่สามารถหาวิธีทำให้มันใช้งานได้ทั้งหมด
https://stackoverflow.com/questions/40873393/nginx-real-client-ip-to-tcp-stream-backend
https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/