ในที่สุดฉันตั้งใจที่จะกำหนดค่า nginx เป็นเนื้อหาพร็อกซีจากบริการเว็บบนโฮสต์ต่างๆ ตามที่ตั้งค่าไว้ในขณะนี้ ฉันใช้ nginx Proxy Manager กับ nginx ในคอนเทนเนอร์ Docker เพื่อแยกความซับซ้อนของการตั้งค่าบริการเว็บออกจากปัญหาการกำหนดค่า reverse proxy ฉันได้ตั้งค่าเว็บเซิร์ฟเวอร์ด้วยเนื้อหาคงที่
- ฉันมี Apache ในคอนเทนเนอร์บนเครือข่ายนักเทียบท่าเดียวกันกับคอนเทนเนอร์ nginx
- ฉันมี IIS บนเวิร์กสเตชันของฉัน
อย่างที่คุณเห็นจากการคว้านี้ ฉันได้ตั้งค่า nginx ให้พร็อกซี IIS ของเวิร์กสเตชันของฉันสำเร็จแล้ว (ไม่ต้องพูดถึงรายการ DNS สาธารณะสำหรับอินเทอร์เฟซภายนอกของฉัน ใช้งานได้ดี
การคว้าเหล่านี้แสดงให้เห็นว่าคอนเทนเนอร์ Apache แมป 80 ถึง 8080 บนโฮสต์นักเทียบท่าซึ่งตั้งชื่อตามจินตนาการว่านักเทียบท่า และเบราว์เซอร์บนเวิร์กสเตชันของฉันสามารถเข้าถึงทั้งเอกสารรูทและเอกสารอื่นตามชื่อ
ณ จุดนี้ฉันได้แก้ไขข้อกำหนดโฮสต์พร็อกซี nginx เพื่อกำหนดตำแหน่งที่กำหนดเอง ภายใน เครือข่ายนักเทียบท่า Apache อยู่ที่พอร์ต 80; นี่คือเหตุผลที่ฉันระบุ 80 แทนที่จะเป็น 8080
สิ่งนี้ดูเหมือนจะใช้งานได้
...จนกว่าคุณจะลองโหลดทรัพยากรอื่นจาก Apache แต่ได้รับเนื้อหาเดียวกัน
ดูเหมือนว่าอะไรก็ตามที่ขึ้นต้นด้วย อาปาเช่/
ถูกแมปกับเอกสารรูท
ณ จุดนี้ ฉันกลับไปค้นหาเอกสารประกอบแต่ไม่พบสิ่งใดที่เกี่ยวข้อง
สลับสิ่งต่าง ๆ เพื่อให้ nginx พร็อกซี IIS และตำแหน่งที่กำหนดเอง ii
จุดที่ IIS บนเวิร์กสเตชันของฉันแสดงปัญหาเดียวกันทุกประการ คราวนี้กับ IIS
การกำหนดค่านี้ควรแสดงออกอย่างไร?
คำตอบที่ใช้ Proxy Manager นั้นดีกว่า ฉันมีอะไรให้เรียนรู้อีกเล็กน้อยก่อนที่จะสามารถใช้คำแนะนำในการแฮ็กการกำหนดค่า nginx ได้โดยตรง
ที่กล่าวว่าเพื่อใช้ในการวินิจฉัยนี่คือการกำหนดค่าที่สร้างขึ้น
# --------------------------------------------- -----------
#wone.pdconsec.net
# --------------------------------------------- -----------
เซิร์ฟเวอร์ {
ตั้ง $forward_scheme http;
ตั้ง $server "pnuc.lan";
ตั้งพอร์ต $80;
ฟัง 80;
ฟัง [::]:80;
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name wone.pdconsec.net;
# มาเข้ารหัส SSL กันเถอะ
รวม conf.d/include/letsencrypt-acme-challenge.conf;
รวม conf.d/include/ssl-ciphers.conf;
ssl_certificate /etc/letsencrypt/live/npm-1/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/npm-1/privkey.pem;
พร็อกซี access_log /data/logs/proxy-host-1_access.log;
error_log /data/logs/proxy-host-1_error.log เตือน;
ตำแหน่ง /apache {
ตั้ง $upstream http://apache:80/;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $อัพสตรีม;
}
ที่ตั้ง / {
#ผู้รับมอบฉันทะ !
รวม conf.d/include/proxy.conf;
}
# กำหนดเอง
รวม /data/nginx/custom/server_proxy[.]conf;
}