Score:1

การเข้าถึงเว็บเซิร์ฟเวอร์ของเซิร์ฟเวอร์บนเครือข่ายท้องถิ่นด้วยที่อยู่ IP ในเครื่อง

ธง au

ฉันมีเซิร์ฟเวอร์ที่มี Apache เป็นพร็อกซีสำหรับคำขอไปยังบริการเว็บโหนด ขณะนี้ฉันสามารถเชื่อมต่อโดยใช้เบราว์เซอร์นอกเครือข่ายท้องถิ่นโดยใช้ชื่อโดเมนของฉัน: https://mydomain.ca. ฉันเชื่อว่าฉัน ใช้แล้ว เพื่อให้สามารถเชื่อมต่อโดยใช้เบราว์เซอร์ภายในเครือข่ายท้องถิ่นของฉันโดยใช้ที่อยู่ IP ภายในของเซิร์ฟเวอร์: https://10.0.0.13. อย่างไรก็ตาม เมื่อฉันลองตอนนี้ ฉันได้รับข้อผิดพลาด 500 ฉันกำลังมองหาความช่วยเหลือในการทำให้สิ่งนี้กลับมาทำงานได้อีกครั้ง ฉันก็โอเคที่จะไม่ใช้ SSL บนเครือข่ายท้องถิ่นของฉันและเข้าถึงเซิร์ฟเวอร์ด้วย http://10.0.0.13 ถ้ามันทำได้มากกว่านี้

ฉันได้รับข้อความต่อไปนี้พร้อมข้อผิดพลาด 500:

พร็อกซีเซิร์ฟเวอร์ไม่สามารถจัดการคำขอได้ 
สาเหตุ: เกิดข้อผิดพลาดระหว่าง SSL Handshake กับเซิร์ฟเวอร์ระยะไกล

ฉันไปหาเบาะแสเพิ่มเติมในบันทึกข้อผิดพลาด Apache (/var/log/apache2/error.log) แต่ฉันไม่พบข้อความที่ฉันพบว่ามีประโยชน์มาก:

[อา. 28 พ.ย. 23:11:42.609115 2021] [proxy_http:error] [pid 28560:tid 140085584455424] [ไคลเอนต์ 10.0.0.220:26070] AH01097: เนื้อหาคำขอผ่านล้มเหลวที่ 127.0.0.1:4201 (โลคา lhost) จาก 10.0 0.220 () 
[อา. 28 พ.ย. 23:11:42.769782 2021] [proxy:error] [pid 28560:tid 140085567670016] (20014)ข้อผิดพลาดภายใน (ไม่มีข้อมูลเฉพาะ): [client
10.0.0.220:26071] AH 01084: เนื้อหาคำขอผ่านล้มเหลวไปยัง 127.0.0.1:4201 (localhost) 
[อา. 28 พ.ย. 23:11:42.769805 2021] [proxy:error] [pid 28560:tid 140085567670016] [client 10.0.0.220:26071] AH00898: เกิดข้อผิดพลาดระหว่าง SSL Handshake กับเซิร์ฟเวอร์ระยะไกลที่ส่งคืน d โดย /

นี่คือลักษณะของไฟล์ conf ของฉัน:

mydomain.ca-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName mydomain.ca
    ServerAlias www.mydomain.ca
    ProxyPreserveHost on
    SSLProxyEngine on
    ProxyPass / https://localhost:4201/
    ProxyPassReverse / https://localhost:4201/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

ServerAlias mydomain.ca
SSLCertificateFile /etc/letsencrypt/live/mydomain.ca/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.ca/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

mydomain.ca.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mydomain.ca
    ServerAlias www.mydomain.ca
    DocumentRoot /var/www/mydomain.ca
    ProxyPreserveHost on
    ProxyPass / http://localhost:4201/
    ProxyPassReverse / http://localhost:4201/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

แก้ไข - นี่คือข้อมูลบางอย่างเกี่ยวกับบริการเว็บโหนด: บริการเว็บโหนดกำลังฟังพอร์ตเดียวและกำลังฟังการเชื่อมต่อ https เท่านั้น

ru flag
`http://10.0.0.13` ควรใช้งานได้ ตรวจสอบให้แน่ใจว่าเบราว์เซอร์นั้นไม่ได้เปลี่ยนเส้นทางไปที่ https โดยอัตโนมัติ ซึ่งเป็นไปได้มากว่าเทรนด์ล่าสุดจะเปลี่ยนเป็น https เท่านั้น
au flag
ฉันได้ตรวจสอบอีกครั้งว่าฉันไม่ได้ถูกเปลี่ยนเส้นทางและสามารถยืนยันได้ว่าปัญหาที่อธิบายไว้ข้างต้นยังคงเกิดขึ้นแม้ว่าฉันจะไปที่ `http://10.0.013` จากภายในเครือข่ายท้องถิ่นของฉัน
Score:2
ธง in

คุณได้กำหนดค่าทั้ง HTTP และ HTTPS เพื่อเชื่อมต่อกับพอร์ตเดียวกันบนเซิร์ฟเวอร์ส่วนหลัง

เป็นไปได้น้อยมากที่เซิร์ฟเวอร์ส่วนหลังของคุณจะรองรับทั้งสองโปรโตคอลบนพอร์ตเดียวกัน

ใช้ HTTP ใน VirtualHost ทั้งสอง หรือใช้พอร์ตที่ถูกต้องสำหรับ HTTPS หากเซิร์ฟเวอร์ส่วนหลังของคุณรองรับทั้งสองอย่าง

ru flag
แบ็กเอนด์รองรับเฉพาะ http การยกเลิก SSL เกิดขึ้นในฝั่ง apache เพื่อให้การกำหนดค่านั้นตกลง
in flag
ไม่มันไม่ใช่. คุณมี `ProxyPass / https://localhost:4201/` ในการกำหนดค่าของคุณ Apache พยายามพูดคุยกับแบ็กเอนด์ของคุณด้วย https แต่ตอบกลับด้วย HTTP ดังนั้น `ข้อผิดพลาดระหว่าง SSL Handshake`
ru flag
อ่า ถูกต้อง นั่นเป็นความผิดพลาดอีกประการหนึ่ง โฮสต์เสมือนทั้งสองควรใช้ http ฉันคิดว่า แต่ที่แน่ๆ เราไม่รู้อะไรเกี่ยวกับแบ็กเอนด์เลย
au flag
ฉันแก้ไขโพสต์ต้นฉบับของฉันพร้อมข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่าบริการเว็บโหนด ฉันลอง `ProxyPass / https://localhost:4201/` ใน `mydomain.ca.conf` แล้วไปที่ `http://mydomain.ca` แต่พบ "Internal Service Error" ที่แตกต่างออกไป ฉันได้ลองไปที่ `https://10.0.0.13` และนั่นทำให้ฉันยังคงได้รับ "ข้อผิดพลาดพร็อกซี" เหมือนเดิมตามที่อธิบายไว้ข้างต้น โดยเฉพาะอย่างยิ่ง ฉันไม่แน่ใจว่าทำไมวิธีสุดท้ายนี้ใช้ไม่ได้เมื่อ `https://mydomain.ca` ทำงานจากภายนอกเครือข่ายของฉัน
Score:1
ธง au

ความคิดเห็นบางส่วนด้านบนทำให้ฉันคิดเกี่ยวกับเรื่องนี้ได้อย่างถูกต้อง วิธีการที่ฉันไปด้วยคือการ

  • เรียกใช้เซิร์ฟเวอร์ http & https แยกกันบนพอร์ตต่างๆ ภายในบริการเว็บ Node ของฉัน
  • อัปเดตหมายเลขพอร์ตใน mydomain.ca.conf และ mydomain.ca-le-ssl.conf ให้สอดคล้องกับหมายเลขพอร์ตที่ถูกต้อง และ
  • อัปเดต mydomain.ca.conf ให้ตอบสนองเฉพาะคำขอจาก localhost หรือ LAN ดังที่แสดงด้านล่าง
<โฮสต์เสมือน *:80>
  # เราควรเข้าถึงเว็บเซิร์ฟเวอร์ผ่าน http หากอยู่ใน localhost
  #หรือในระบบ LAN
  <สถานที่ />
    ต้องการท้องถิ่น
    ต้องการ ip 10.0.0.0/24
  </สถานที่>
  ...

ตอนนี้ฉันสามารถเข้าถึงได้แล้ว http://10.0.0.13 จากภายในเครือข่ายท้องถิ่นของฉันและ https://mydomain.ca จากภายนอกเครือข่ายท้องถิ่นของฉัน

โพสต์คำตอบ

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