Score:0

ส่งต่อคำขอ HTTP (หรือ TCP) ผ่าน NGINX โดยใช้โดเมนย่อยไปยังพอร์ตเฉพาะ

ธง in

ฉันต้องการเปิดเผยเว็บเซิร์ฟเวอร์ในเครื่องผ่านเว็บเซิร์ฟเวอร์ระยะไกล รีโมตโฮสต์มี Nginx และเว็บแอปพลิเคชัน (เว็บเมล) อยู่แล้ว เซิร์ฟเวอร์ระยะไกลทำงานเป็นเกตเวย์สำหรับเว็บเซิร์ฟเวอร์ภายในที่ส่งต่อพอร์ต 80 ไปยัง 8080 ระยะไกล ซึ่งกำลังทำงานอยู่

ตอนนี้ฉันต้องการส่งต่อคำขอโดเมนย่อย (เช่น bridge.mydomain.co) ไปยังพอร์ตที่ส่งต่อ ฉันลองใช้สิ่งนี้:

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง [::]:80;
    server_name บริดจ์.mydomain.co;

    ที่ตั้ง / {
        proxy_set_header โฮสต์ $host;
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
    }
}

เว็บเซิร์ฟเวอร์ในเครื่องกำลังเรียกใช้แอปพลิเคชัน PHP ที่ซับซ้อน ดังนั้นจึงบ่นว่า:

40 ข้อผิดพลาดเช่น:

ปฏิเสธที่จะโหลดสไตล์ชีต '' เพราะมันละเมิด ตามคำสั่งนโยบายความปลอดภัยของเนื้อหา: "default-src https: data: 'unsafe-inline' 'unsafe-eval'" โปรดทราบว่า 'style-src-elem' ไม่ใช่ ตั้งค่าอย่างชัดเจน ดังนั้น 'default-src' จึงถูกใช้เป็นทางเลือก

และ 56 จาก:

ปฏิเสธที่จะโหลดสคริปต์ '' เพราะมันละเมิดสิ่งต่อไปนี้ คำสั่งนโยบายความปลอดภัยของเนื้อหา: "default-src https: data: 'unsafe-inline' 'unsafe-eval'" โปรดทราบว่า 'script-src-elem' ไม่ใช่ ตั้งค่าอย่างชัดเจน ดังนั้น 'default-src' จึงถูกใช้เป็นทางเลือก

ฉันรู้ว่าฉันสามารถเปิดเผยพอร์ตที่ส่งต่อได้โดยตรง ซึ่งทำงานได้อย่างไม่มีที่ติ แต่ฉันต้องการใช้ (ในที่สุด) nginx เพื่อยุติ TLS แล้วส่งต่อ

การอ่านเกี่ยวกับปัญหานี้ดูเหมือนว่าเว็บเซิร์ฟเวอร์ใน PHP กำลังปฏิเสธคำขอ ยังไงก็ไม่รู้จะแก้ไขยังไง

ความช่วยเหลือใด ๆ ?

djdomi avatar
za flag
คุณแน่ใจหรือว่าเซิร์ฟเวอร์ PHP ไม่ได้ร้องขอ HTTPS แทนที่จะเป็น HTTP
Score:0
ธง in

คิดออกในตอนท้าย ฉันต้องผ่าน/เพิ่มส่วนหัวต่อไปนี้:

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง [::]:80;
    server_name บริดจ์.mydomain.co;

    เซิร์ฟเวอร์ proxy_pass_header;

    ที่ตั้ง / {
        proxy_set_header โฮสต์ $host;
    add_header เนื้อหา-ความปลอดภัย-นโยบาย "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://bridge.mydomain.co http://bridge.mydomain.co:8080 http://bridge.mydomain.co/core/img/favicon-touch.png; img-src 'ตัวเอง' http://bridge.mydomain.co http://bridge.mydomain.co:8080;";
        proxy_pass http://bridge.mydomain.co:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
    }

}

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

หากคุณต้องการอ่านคำอธิบายที่นี่ มีเนื้อหาบางส่วนจากผู้ที่มีความรู้มากกว่าฉัน: https://stackoverflow.com/questions/33300111/how-to-override-content-security-policy-of-site-a- while-using-nginx-proxy-pass-o

โพสต์คำตอบ

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