Score:0

วิธีตั้งค่า DNS บนโดเมน Google เพื่อโฮสต์เว็บไซต์ Tomcat บนอินเทอร์เน็ต

ธง us

ความคาดหวัง/เป้าหมาย

  • เรามีโดเมนเป็น (พูด) ตัวอย่าง.คอม ซื้อเมื่อ Google โดเมน และพีซีที่ทำงานด้วย windows 10 Pro
  • เราตั้งใจที่จะทำให้พีซีนี้เป็นเซิร์ฟเวอร์สำหรับโฮสต์ 2 เว็บแอปของเรา แอป1 และ แอป2 ขณะนี้เราไม่ได้เป็นเจ้าของที่อยู่ IP แบบคงที่ ดังนั้นให้อ้างอิงที่อยู่สาธารณะเป็น: 192.0.2.0
  • เว็บแอพพลิเคชั่น แอป1 และ แอป2 กำลังทำงานบน Tomcat ในฐานแอปและพอร์ตที่แยกจากกัน 8081 & 8082
  • เราอยากวิ่ง แอป1 และ แอป2 บนโดเมนย่อย app1.example.com และ app2.example.com ตามลำดับ

นี่คือทุกสิ่งที่กำลังทำงานอยู่:

  1. แอปพลิเคชันบนเว็บที่ทำงานบนฐานแอปที่แยกจากกันใน Tomcat (v9) บนพอร์ตที่แยกจากกัน และสามารถเข้าถึงได้จากในเครื่องและจากอินทราเน็ต
  2. เว็บแอปพลิเคชันยังสามารถเข้าถึงได้จากอินเทอร์เน็ตด้วยการส่งต่อพอร์ตที่สำเร็จ (192.0.2.0:8081 และ 192.0.2.0:8082 โหลดสำเร็จ แอป1 และ แอป2 ตามลำดับ).

ปัญหา: โดเมน URL ถูกแทนที่ด้วยที่อยู่ IP สาธารณะ:

ตอนนี้การส่งต่อพอร์ตสำเร็จแล้ว ฉันลองส่งต่อโดเมน (ก่อนที่จะอ่านมากเกี่ยวกับการกำหนดค่า DNS ควรทำอย่างไร)

นี่คือวิธีที่ฉันส่งต่อโดเมน:

  1. ผมไปในส่วนของเว็บไซต์ (เว็บไซต์_section_cropped_screen_shot.png) มีการคลิกที่ เพิ่มที่อยู่สำหรับส่งต่อ(Add_a_forwarding_address_SS_cropped.png).
  2. จากนั้นในฟอร์มผลลัพธ์ กรอกกล่องข้อความที่มีป้ายกำกับ ส่งต่อจาก และ ส่งต่อไปยัง กับ app1.example.com และ 192.0.2.0:8081 ตามลำดับ

หลังจากทำสิ่งนี้แล้วที่อยู่ app1.example.com จะเปลี่ยนเส้นทางไปที่ แอป1 แต่ URL จะแทนที่ app1.example.com กับ 192.0.2.0:8081

จากนั้น ฉันอ่านบทความและบล็อกจำนวนมากที่บอกให้เพิ่มระเบียนประเภท A หรือระเบียนประเภท CNAME แต่ฉันไม่เข้าใจว่าต้องทำอย่างไร หรือต้องใช้ระเบียนใดบ้างเพื่อให้ทำงานได้อย่างถูกต้อง

ฉันลองใช้ชุดค่าผสม (ใน โดเมน ส่วน):

ชุดค่าผสม 1:

{ ชื่อโฮสต์=example.com, type=A, TTL=3600, ข้อมูล:192.0.2.0 }
{ ชื่อโฮสต์=app1.example.com, ประเภท=CNAME, TTL=3600, ข้อมูล:192.0.2.0:8081 }

ชุดค่าผสม 2:

{ ชื่อโฮสต์=app1.example.com, ประเภท=TXT, TTL=3600, ข้อมูล:192.0.2.0:8081 }

แต่ไม่มีใครทำงานและต่อมามันก็ไม่สมเหตุสมผลสำหรับฉัน

โปรดช่วยฉันในเรื่องนี้ ฉันไม่มีประสบการณ์ในการตั้งค่า DNS สำหรับเว็บไซต์และ/หรือสิ่งอื่นใดที่จำเป็นเพื่อให้เป็นไปตามความคาดหวังข้างต้น

อัปเดต


ขอบคุณ @fvu ฉันสามารถเริ่มต้นกับ nginx กำหนดค่าในเครื่องซึ่งใช้งานได้และเข้าใจวิธีการทำงานของพร็อกซีเซิร์ฟเวอร์ (รวมถึงสถานการณ์กรณีที่ดีที่สุดเท่านั้น)

ตอนนี้มีปัญหาอื่น ฉันไม่สามารถเปิดพอร์ต 80 บนเครื่องเซิร์ฟเวอร์ได้สำเร็จ

ฉันลองและทดสอบทุกอย่าง:

  • nginx ประสบความสำเร็จในการเริ่มต้นและทำงานบนพอร์ต 80 โดยนัยว่า 80 ไม่ถูกบล็อกโดยกระบวนการอื่นใด
  • พอร์ตอื่นๆ ทั้งหมดได้รับการส่งต่อพอร์ตอย่างถูกต้อง แต่พอร์ต 80 ไม่แสดงการตรวจสอบที่เปิดอยู่ในไซต์ตรวจสอบพอร์ตหลายแห่ง (ส่วนใหญ่อยู่ใน portchecker.co)
  • เพื่อตรวจสอบสิ่งที่เกิดขึ้น ฉันแก้ไขการตั้งค่าไฟร์วอลล์เพื่อเพิ่มกฎและเริ่มบันทึก ALLOWED เช่นเดียวกับแพ็กเก็ต DENIED สำหรับโปรไฟล์ทั้งหมด (โดเมน สาธารณะ และส่วนตัว)
    • ในบันทึกฉันเห็นว่ามีบางคำขอสำหรับพอร์ต 443 ฉันสงสัยว่าคำขอในพอร์ต 80 ถูกแปลงเป็น 443 หรือไม่ แต่ไม่ทราบแน่ชัด เป็นไปได้ไหม?
    • มีคำขอจำนวนมากบนพอร์ต 80 ที่ได้รับอนุญาต แต่ยังคงแสดงพอร์ต 80 ว่าปิดอยู่ในไซต์ตัวตรวจสอบพอร์ต

ตอนนี้ฉันจะต้องแก้ไขปัญหา port-80-not-opening หรือเปลี่ยนพอร์ต nginx เป็นอย่างอื่นที่ไม่ใช่ 80

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

ฉันคิดว่าบางทีในเราเตอร์ฉันสามารถส่งต่อพอร์ต 80 ถึง 81 และให้ nginx ทำงานบน 81 หรือมากกว่านั้น แต่ฉันต้องลองดูก่อน

ในขณะเดียวกันถ้าคุณสามารถบอกฉันบางอย่างเกี่ยวกับวิธีจัดการ reverse proxy โดยใช้ nginx ที่ทำงานบนพอร์ตอื่นที่ไม่ใช่ 80

[ฉันเร่งรีบ ดังนั้นอาจมีการพิมพ์ผิดหรือมีรายละเอียดน้อย โปรดสอบถามหากจำเป็น!]

Score:0
ธง al
fvu

เนื่องจากคุณไม่ได้เป็นเจ้าของที่อยู่ IP แบบคงที่สำหรับเซิร์ฟเวอร์ คุณจะต้องอ้อมผ่านผู้ให้บริการ DNS แบบไดนามิกรายใดรายหนึ่ง (บางทีโดเมน Google อาจใช้บริการดังกล่าวแล้ว แต่ไม่ทราบ)

จากนั้นคุณจะสามารถ CNAME ชื่อนั้นเป็น app1.example.com และ app2.example.com (บันทึก CNAME สองรายการเพื่อความชัดเจน!!!) คุณไม่สามารถระบุพอร์ตในระเบียน CNAME ได้ (ดู ที่นี่ สำหรับคำถามที่เกี่ยวข้อง)

ณ จุดนี้ คุณจะสามารถเผยแพร่ที่อยู่ของบริการของคุณได้ แต่ คุณจะต้องระบุหมายเลขพอร์ตด้วยเสมอ ซึ่งอาจสร้างความรำคาญได้

ตอนนี้ หากต้องการกำจัดพอร์ตที่กำหนดเองในขณะที่สามารถเรียกใช้บริการสองบริการในที่อยู่เดียวที่มีชื่อโฮสต์สองแห่ง ให้ใช้พร็อกซีย้อนกลับที่รองรับ SNI ข้างหน้า Tomcats ของคุณ ฉันชอบ จิงซ์, ก่อนที่เราจะใช้ ปอนด์ ซึ่งตั้งค่าได้ง่ายกว่าสำหรับการกำหนดค่าอย่างง่าย แต่มีอย่างอื่นให้เลือกมากมาย หรือเรียกใช้ทั้งสองบริการใน Tomcat เดียวและใช้การสนับสนุน SNI ในตัวของ Tomcat

มีหลายขั้นตอน (และส่วนเสริมในการตั้งค่า) เพื่อทำให้การตั้งค่าประเภทนี้ใช้การได้ ฉันหวังว่าคำอธิบายของฉันจะสมเหตุสมผลพอที่จะช่วยให้คุณดำเนินการต่อไปได้

Ameya Kalyankar avatar
us flag
ก่อนอื่น ขออภัยที่ฉันไม่สามารถตอบกลับข้อความนี้ได้เร็วๆ นี้ ฉันติดภารกิจอื่น! ตอนนี้เกี่ยวกับคำตอบของคุณ เราตั้งใจที่จะซื้อ static ip ในอนาคตอันใกล้ ดังนั้นในบริบทนั้นฉันต้องถาม: พูดเป็นระยะเวลาหนึ่งหากอุปกรณ์เซิร์ฟเวอร์แน่ใจว่ามีที่อยู่ IP สาธารณะเดียวกัน และถ้าฉันข้าม ขั้นตอน DNS แบบไดนามิกในการตั้งค่าโฮสติ้งโฮสติ้งจะทำงานในช่วงเวลานั้น **วัตถุประสงค์ของคำถาม**: หากกระบวนการตั้งค่าทำงานโดยข้ามขั้นตอน DNS แบบไดนามิก ตราบใดที่ Public IP ยังเหมือนเดิมเมื่อตั้งค่าเสร็จแล้ว ฉันก็สามารถเริ่มต้นด้วย **เพื่อดำเนินการต่อ...**
Ameya Kalyankar avatar
us flag
...จากนั้นฉันก็เริ่มตามขั้นตอนที่เหลือได้เลย มิฉะนั้น เราจะซื้อ IP แบบคงที่ก่อน จากนั้นจึงดำเนินการตามขั้นตอนที่เหลือ @fvu
fvu avatar
al flag
fvu
ถูกต้อง. ขอให้โชคดี และอย่าลืมโหวตและยอมรับ หากคุณรู้สึกว่าคำตอบของฉันแก้ปัญหาของคุณได้แล้ว!

โพสต์คำตอบ

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