Score:2

Using same port in both IIS and nginx on different IP addresses

ธง gb

The server is running Windows Server 2019 Standard with IIS 10, and it has two network interfaces with public IPs (198.51.100.1 and 203.0.113.1)

My desired setup:

  • IIS: 198.51.100.1 on port 80
  • IIS: 198.51.100.1 on port 443
  • IIS: 203.0.113.1 on port 80
  • nginx: 203.0.113.1 on port 443

But after IIS started, the http.sys (PID=4) starts listening 80 and 443 ports on all IPs:

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       4
  TCP    [::]:80                [::]:0                 LISTENING       4
  TCP    [::]:443               [::]:0                 LISTENING       4

I can limit to particular address with 'netsh http add iplisten' command, but I want to use both 198.51.100.1 and 203.0.113.1 address in IIS. Iplisten is not allowed to specify ports.

And I don't want to use reverse proxy...

Anyone know how I can use 443 in both IIS and nginx?

cn flag
Bob
คุณไม่สามารถใช้ Site ==> Bindings ใน IIS Manager เพื่อหยุดฟัง IP ใดๆ/ทั้งหมด และจำกัด IIS เฉพาะที่อยู่ IP เฉพาะ 1.1.1.1 สำหรับพอร์ต 443 ออกจาก 2.2.2.2:443 IP-address:port ฟรีสำหรับ nginx ที่จะผูกกับ?
gb flag
การผูก IIS ถูกตั้งค่าเป็นที่อยู่เฉพาะ (ตามการตั้งค่าที่ฉันต้องการ) อย่างไรก็ตาม http.sys กำลังฟังที่อยู่ทั้งหมด 0.0.0.0:80 และ 0.0.0.0:443
Score:1
ธง in

คุณจะต้องใช้ NETSH เพื่อกำหนดค่าระบบเพื่อให้ http.sys จับภาพที่อยู่เฉพาะเท่านั้น (โดยค่าเริ่มต้น ระบบจะจับไวด์การ์ด ดังที่คุณเห็นใน NETSTAT ที่คุณรวมไว้)

ลองเรียกใช้สิ่งเหล่านี้จากพรอมต์คำสั่งที่ยกระดับ (หลังจากหยุดบริการ IIS)

netsh http ลบ iplisten 0.0.0.0
netsh http เพิ่ม iplisten 198.51.100.1:80
netsh http เพิ่ม iplisten 198.51.100.1:443
netsh http เพิ่ม iplisten 203.0.113.1:80

ซึ่งควรกำหนดค่า http.sys ใหม่ให้รับฟังเฉพาะชุดค่าผสม IP:Port ที่ระบุเท่านั้น และไม่ดักจับทุก :80 และ :443 บนระบบในเชิงรุก

โน๊ตสำคัญ -- อย่าลืมว่าตอนนี้คุณได้จำกัดชุดค่าผสมของพอร์ต IP ที่ IIS สามารถตอบรับได้ (ไม่ว่าคุณจะกำหนดค่าการผูกบนไซต์ภายใน IIS Admin) อย่างไร หากคุณต้องการเพิ่ม IP และ/หรือพอร์ตในอนาคต คุณจะต้องดำเนินการเพิ่มเติม netsh http เพิ่ม iplisten คำสั่ง

in flag
ฉันไม่มีเซิร์ฟเวอร์ 2019 ให้เล่น แต่ฉันเพิ่งค้นหาข้อมูลจำเพาะของ MS Docs ในคำสั่งนี้ และมันเปลี่ยนไปตั้งแต่ฉันใช้ครั้งสุดท้าย ข้อมูลจำเพาะปัจจุบันแสดงให้เห็นว่าไม่ได้ใช้ (และจะไม่สนใจ) หมายเลขพอร์ต ซึ่งหมายความว่าสิ่งนี้อาจไม่ทำงานสำหรับการแยก 203.0.113.1 ข้ามทั้ง IIS และ nginx คุณอาจต้องสูญเสีย IP ทั้งหมดจาก IIS และไม่ได้เรียกใช้ไซต์ :80 บนนั้น) YMMV ดังนั้นให้ทดสอบการทำงานก่อน แต่ตอนนี้ฉันเห็นในเอกสารแล้ว https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-http#add-iplisten
gb flag
จริงๆ แล้ว เราไม่สามารถระบุพอร์ตในคำสั่ง netsh http iplisten ได้ (ในปี 2019 และในปี 2016 หรือ 2008 ด้วย) ในโพสต์ต้นฉบับฉันพูดถึงเรื่องนี้
in flag
ฉันขอโทษ @crazyman ฉันไม่รู้ว่าฉันอ่านมันสองสามครั้งได้อย่างไรและพลาดอย่างต่อเนื่องที่คุณตัดสินใจแล้วว่า iplisten จะไม่ทำงาน ฉันสาบานได้ว่าฉันสามารถใช้พอร์ตในปี 2008r2 ได้ แต่จริงๆ มันนานพอที่จะเป็น 03 ได้ ฉันเพียงแค่ดูเอกสารอีกครั้งและไม่เห็นสิ่งใดที่เป็นปัจจุบันที่จะจำกัด http.sys ไปยังพอร์ตเฉพาะ
gb flag
ไม่มีปัญหา. อาจจะเป็นปี 2003 ในปี 2008r2 คุณไม่สามารถระบุพอร์ตได้อย่างแน่นอน https://paste.pics/8777daa1495927d741c6d3e7831e9f23

โพสต์คำตอบ

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