ฉันได้ค้นหาฟอรัม (และที่อื่น ๆ บนเว็บ) และพบข้อมูลที่เกี่ยวข้องแต่ดูเหมือนจะไม่เหมือนกัน หวังว่าฉันจะไม่ทำซ้ำที่นี่
ฉันมีไซต์ที่ทำงานบนเซิร์ฟเวอร์ Apache มีใบรับรอง SSL แล้ว (ผ่าน LetsEncrypt) และทำงานโดยไม่มีปัญหา
ฉันเพิ่งตั้งค่าเครื่อง 'ด้านหน้า' ของเครื่องที่ใช้ Nginx เครื่องนั้นให้บริการสามโดเมน (พร้อมหนึ่งใบรับรองจาก LetsEncrypt)
ฉันต้องการส่งคำขอโดเมนบนเครื่อง Apache ผ่าน Nginx แต่มีปัญหาในการหาการตั้งค่าที่เหมาะสม ฉันเคยทำสิ่งนี้กับเครื่องที่ให้บริการ Apache สองเครื่องในอดีตโดยไม่มีปัญหามากนัก แต่ฉันยังใหม่กับ Nginx และเห็นได้ชัดว่ายังไม่เชี่ยวชาญเพียงพอ
การตั้งค่าเซิร์ฟเวอร์เสมือนที่ฉันมีในเครื่อง Nginx net (ผ่านเราเตอร์) คือ:
เซิร์ฟเวอร์ {
ฟังโดเมน pointing.to.apache.com:443 ssl;
server_name โดเมน pointing.to.apache.com;
ที่ตั้ง / {
รูท 192.168.11.14/var/www/html/;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-ส่งต่อเซิร์ฟเวอร์ $host;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_pass โดเมน pointing.to.apache.com;
}
}
แต่แน่นอนว่า Nginx ไม่ชอบสิ่งนี้และจะไม่โหลดซ้ำหลังจากเพิ่ม vs. คำแนะนำใด ๆ ฯลฯ จะได้รับการชื่นชมมากที่สุด
หมายเหตุ - ฉันคิดว่ามันชัดเจน แต่ 192.168.11.14 อยู่หลังเราเตอร์ของฉันและไม่ได้เปิดเผยโดยตรงกับเน็ต
เจสัน
แก้ไข/ปรับปรุง:
ข้อมูลสำคัญที่ขาดหายไปจากคำถามเดิมของฉัน:
เครื่อง Nginx ที่หันเข้าหาเน็ตซึ่งฉันต้องการย้อนกลับพร็อกซีไปยัง Apache ยังให้บริการโดเมนย่อยสามโดเมนของโดเมนหลักของฉันที่ฉันต้องการย้อนกลับพร็อกซี (sub1.mydomain.com, sub2.mydomain.com, sub3.mydomain.com) ทั้งสามใช้ใบรับรอง SSL เดียวจาก LetsEncrypt
เซิร์ฟเวอร์ Apache บนเครือข่ายท้องถิ่นมีใบรับรองที่ออกโดย LetsEncrypt และให้บริการ mydomain.com จนกว่าฉันจะวางเครื่อง Nginx ไว้ข้างหน้า
ตอนนี้ฉันได้ลบใบรับรอง SSL บนเครื่อง Apache ลบเซิร์ฟเวอร์เสมือน https และตั้งค่าเซิร์ฟเวอร์เสมือนอย่างง่ายสำหรับพอร์ต 80
การตั้งค่าเริ่มต้น Nginx ของฉันส่งคำขอไปที่ http //www.mydomain.com ซึ่งเพียงแค่แบ่งปันหน้า html ที่น่าเบื่อมากในตอนนี้
ฉันได้ติดตั้งใบรับรอง SSL สำหรับโดเมน https //www.mydomain.com บนกล่อง Nginx แล้ว และต้องการใช้คำแนะนำที่ Tero ให้ไว้เพื่อย้อนกลับคำขอ https ของพร็อกซีบน mydomain.com ไปและกลับจากกล่อง Apache ในเครื่อง ดังต่อไปนี้:
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem;
server_name www.mydomain.com;
ที่ตั้ง / {
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-ส่งต่อเซิร์ฟเวอร์ $host;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_pass https://192.168.11.14;
}
}
ปัญหาคือฉันได้รับข้อผิดพลาด 502 Bad Gateway จากเครื่อง Nginx... ฉันเดาว่าฉันมีบางอย่างผิดปกติกับการตั้งค่า Nginx... ฉันใกล้จะถึงแล้ว แต่ยังไม่ถึงตรงนั้น นอกจากนี้ ฉันสังเกตเห็นว่าความพยายามในการเข้าถึง www.mydomain.com หากไม่มี https จะไม่ให้บริการหน้า html ที่น่าเบื่ออีกต่อไป...พวกเขาจะถูกโอน/เขียนใหม่ไปที่ https -> www.mydomain.com และไปยังเกตเวย์ที่ไม่ถูกต้อง 502 อันเดียวกัน