Score:0

ไม่สามารถเข้าถึงบริการเว็บด้วยที่อยู่ IP แบบลอยที่กำหนดให้กับเครื่องของฉัน

ธง ma

ฉันมีเครื่องที่ฉันได้กำหนดที่อยู่ IP แบบลอยตัว เครื่องนั้นเป็นโหลดบาลานเซอร์ของฉันด้วย ฉันสามารถเข้าถึงบริการของฉันได้อย่างง่ายดายโดยใช้ที่อยู่ IP ของโหลดบาลานเซอร์

อย่างไรก็ตาม ฉันไม่สามารถเข้าถึงได้โดยใช้ที่อยู่ IP แบบลอยตัวซึ่งกำหนดให้กับเครื่องโหลดบาลานเซอร์ของฉัน

sudo นาโน /etc/haproxy/haproxy.cfg

ค่าเริ่มต้น
        เข้าสู่ระบบทั่วโลก
        โหมด http
        ตัวเลือก httplog
        ตัวเลือก dontlognull
        หมดเวลาเชื่อมต่อ 5,000
        ลูกค้าหมดเวลา 50,000
        หมดเวลาเซิร์ฟเวอร์ 50,000
        ไฟล์ข้อผิดพลาด 400 /etc/haproxy/errors/400.http
        ไฟล์ข้อผิดพลาด 403 /etc/haproxy/errors/403.http
        ไฟล์ข้อผิดพลาด 408 /etc/haproxy/errors/408.http
        ไฟล์ข้อผิดพลาด 500 /etc/haproxy/errors/500.http
        ไฟล์ข้อผิดพลาด 502 /etc/haproxy/errors/502.http
        ไฟล์ข้อผิดพลาด 503 /etc/haproxy/errors/503.http
        ไฟล์ข้อผิดพลาด 504 /etc/haproxy/errors/504.http

#HAProxy สำหรับเว็บเซิร์ฟเวอร์
ส่วนหน้าของเว็บส่วนหน้า
  ผูก IPADDRESSOFLOADBALANCER:80
  โหมด http
  default_backend เว็บแบ็กเอนด์

แบ็กเอนด์เว็บแบ็กเอนด์
  วงเวียนสมดุล
  เซิร์ฟเวอร์ web-server1 ตรวจสอบ IPADD1:80
  เซิร์ฟเวอร์ web-server2 ตรวจสอบ IPADD2:80
  ตรวจสอบเซิร์ฟเวอร์เว็บเซิร์ฟเวอร์ 3 IPADD3:80
  ตรวจสอบเซิร์ฟเวอร์ web-server4 IPADD4:80

มีอะไรอีกบ้างที่ฉันต้องทำนอกเหนือจากการกำหนดที่อยู่ IP แบบลอยตัว ฉันไม่สามารถเข้าถึงบริการโดยใช้ที่อยู่ IP แบบลอยได้

ป้อนคำอธิบายรูปภาพที่นี่

c4f4t0r avatar
nl flag
คุณสามารถใช้การผูก *:80 ในส่วนหน้า haproxy ของคุณ
Himanshu Poddar avatar
ma flag
@ c4f4t0r ใช่ใช้งานได้ แต่ฉันไม่เข้าใจว่าทำไมมันถึงใช้งานได้ นอกจากนี้ยังจะไม่มีปัญหาด้านความปลอดภัยใดๆ ฉันไม่สามารถผูกกับที่อยู่ IP 2 แห่งโดยเฉพาะได้หรือไม่
Score:1
ธง pe

ฉันไม่คิดว่าคุณจะทำได้ คนส่วนใหญ่ผูกกับที่อยู่ IP เดียวหรือทั้งหมด คุณจะต้องใช้ส่วนหน้าแยกกันสำหรับแต่ละส่วนโดยใช้ส่วนหลังเดียวกัน แต่ทุกคนใช้ * ซึ่งใช้งานได้ดี

Score:0
ธง ma

ฉันใช้แพลตฟอร์ม Digtal Ocean เพื่อสร้างหยดของฉัน หลังจากกำหนด IP แบบลอยตัวจากหน้านี้แล้ว

https://cloud.digitalocean.com/networking/floating_ips?i=0eb956

ตอนนี้ฉันต้องได้รับ IP ส่วนตัวของหยดของฉันโดยใช้คำสั่ง ไอพี

root@ubuntu-s-1vcpu-1gb-blr1-01:~# ip
1: lo: mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ::1/128 ขอบเขตโฮสต์
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eth0: mtu 1500 qdisc fq_codel สถานะกลุ่ม UP เริ่มต้น qlen 1,000
ลิงค์/อีเธอร์ 52:a0:A:B:C:D brd ff:ff:ff:ff:ff:ff
inet PUBLICIP/20 brd E.F.G.H ขอบเขต global eth0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet *PRIVATEIP(X.X.X.X)*/16 brd X.X.I.J ขอบเขต global eth0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 2400:6180:ZZ:ZZ::ZZ:ZZZZ/64 ขอบเขตทั่วโลก
valid_lft ตลอดไป reserved_lft ตลอดไป
ลิงค์ขอบเขต inet6 fe80::50a0:9fff:fe54:add2/64
valid_lft ตลอดไป reserved_lft ตลอดไป
3: eth1: mtu 1500 qdisc fq_codel สถานะกลุ่ม UP เริ่มต้น qlen 1,000
ลิงค์/อีเธอร์ 9a:4b:a5:ZZ:ZZ:ZZ brd ff:ff:ff:ff:ff:ff
inet K.L.M.N/20 brd O.P.Q.R ขอบเขต global eth1
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 fe80::984b:SSSS:TTTT:UUUU/64 ลิงค์ขอบเขต
valid_lft ตลอดไป reserved_lft ตลอดไป

ฉันได้รับลอย IP ว่า FLOATINGIPADDRESS

IP แบบลอยทำงานผ่าน Anchor IP นำเสนอผ่านอินเทอร์เฟซ eth0 เราสามารถใช้ IP ส่วนตัวเดียวกันได้ เนื่องจากการรับส่งข้อมูลใด ๆ ที่ส่งผ่าน IP แบบลอยจะถูกส่งไปยัง IP ส่วนตัวนี้เท่านั้น กล่าวคือ inet *X.X.X.X*/16 บ

ตอนนี้ฉันต้องการ HAProxy เพื่อผูกกับ IP ส่วนตัวนี้ในไฟล์ HAProxy cfg ของฉัน

sudo นาโน /etc/haproxy/haproxy.cfg

#HAProxy สำหรับเว็บเซิร์ฟเวอร์
ส่วนหน้าของเว็บส่วนหน้า
  ผูก PRIVATEIP(X.X.X.X):80
  ผูก LOADBALNCERIP:80
  โหมด http
  default_backend เว็บแบ็กเอนด์

แบ็กเอนด์เว็บแบ็กเอนด์

  http-request set-header X-Forwarded-Proto https ถ้า { ssl_fc } # สำหรับ Proto
  http-request add-header X-Real-Ip %[src] # ส่วนหัวที่กำหนดเองด้วย src IP
  ตัวเลือก forwardfor # X-forwarded-for

  วงเวียนสมดุล
  เซิร์ฟเวอร์ web-server1 ตรวจสอบ IP1:80
  ตรวจสอบเซิร์ฟเวอร์ web-server2 IP2:80
  เซิร์ฟเวอร์ web-server3 ตรวจสอบ IP3:80
  ตรวจสอบเซิร์ฟเวอร์ web-server4 IP4:80

ฟังสถิติ
ผูก PRIVATEIP(X.X.X.X):8080
ผูก LOADBALNCERIP:8080
โหมด http
ตัวเลือกไปข้างหน้าสำหรับ
ตัวเลือก httpclose
เปิดใช้งานสถิติ
สถิติการแสดงตำนาน
รีเฟรชสถิติ 5 วินาที
สถิติ uri /stats
สถานะของอาณาจักร Haproxy\ สถิติ
สถิติ auth root:password #Login ผู้ใช้และรหัสผ่านสำหรับการตรวจสอบ
สถิติผู้ดูแลระบบถ้า TRUE
default_backend เว็บแบ็กเอนด์
c4f4t0r avatar
nl flag
หากคุณตรวจสอบผลลัพธ์ของ netstat -tunap คุณจะเห็นว่า haproxy กำลังฟังเฉพาะบน ip ส่วนตัวของคุณ
Himanshu Poddar avatar
ma flag
คุณหมายถึงอะไรโดย "เท่านั้น"? มันยังฟังบน IP สาธารณะ
c4f4t0r avatar
nl flag
ในคำถามเดิมของคุณ คุณได้ผูก PRIVATEIP(X.X.X.X):80 แล้ว ตอนนี้คุณเปลี่ยนแปลงทุกอย่างต่อไป คุณสามารถนำผลลัพธ์ของคำสั่ง Neststat netstat -tunap | grep ฟังและคุณจะเห็นสิ่งที่ฉันหมายถึง :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา