Score:0

พร็อกซีย้อนกลับอย่างง่ายด้วย nginx และนักเทียบท่าให้ 404

ธง at

ฉันมีการตั้งค่าที่ง่ายมาก สามคอนเทนเนอร์ในนักเทียบท่าที่ฉันต้องการสื่อสารระหว่างกัน ไม่มีอะไรอื่น ผู้โจมตี (กาลีกับ nginx), พร็อกซีย้อนกลับ (อัลไพน์กับ nginx) และเหยื่อ (อัลไพน์) ฉันต้องการ ข้างในเหยื่อ ขด reverse-proxy และรับเว็บไซต์ของผู้โจมตี จนถึงตอนนี้ฉันสามารถรับเว็บไซต์ของผู้โจมตีได้โดยตรงจาก ขด http://172.17.0.2:5555 และย้อนกลับพร็อกซีโดย ขด http://172.17.0.3/ . แต่เมื่อฉันทำ ขด http://172.17.0.3/merlin ฉันเข้าใจ:

<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.18.0</center>
</body>
</html>

สำหรับ reverse-proxy (172.17.0.3) /etc/nginx/conf.d/default.conf :

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง [::]:80;
    พร็อกซี server_name;

    #access_log /var/log/nginx/host.access.log หลัก;

    ที่ตั้ง / {
        รูท /usr/share/nginx/html;
        ดัชนี index.html index.htm;
    }

    ที่ตั้ง / เมอร์ลิน {
        proxy_pass http://172.17.0.2:5555;
    }
    #error_page 404 /404.html;

    # เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    ตำแหน่ง = /50x.html {
        รูท /usr/share/nginx/html;
    }
}

สำหรับผู้โจมตี (172.17.0.2) ของฉัน /etc/nginx/conf.d/default.conf :

เซิร์ฟเวอร์ {
    ฟัง 5555;
    ฟัง [::]:5555;
    server_name localhost;

    #access_log /var/log/nginx/host.access.log หลัก;

    ที่ตั้ง / {
        รูท /usr/share/nginx/html;
        ดัชนี index.html index.htm;
    }


    #error_page 404 /404.html;

    # เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    ตำแหน่ง = /50x.html {
        รูท /usr/share/nginx/html;
    }

}

Grant Collins บน youtube ได้จัดการแล้ว สิ่งที่คล้ายกันแต่ฉันไม่สามารถทำให้มันทำงานได้

Richard Smith avatar
jp flag
`http://172.17.0.3/merlin` ถูกส่งผ่านไปยัง `http://172.17.0.2:5555/merlin` ซึ่งน่าจะเป็นสาเหตุที่คุณได้รับคำตอบ 404
at flag
มันคือ?? ฉันขอโทษที่ฉันไม่เห็น ฉันควรเขียน `proxy_pass` แตกต่างออกไปหรือเป็นอย่างอื่นในโปรแกรมโจมตี default.conf
Richard Smith avatar
jp flag
ดู [คำถาม & คำตอบ] (https://serverfault.com/questions/379675/nginx-reverse-proxy-url-rewrite)
at flag
ฉันเข้าใจแล้ว ขอบคุณ! ฉันต้องเพิ่มการเขียนใหม่หากต้องการให้ไปที่ `http://172.17.0.2:5555` ฉันทำแบบนี้ `rewrite ^/merlin?$ / break;` แต่ไม่ได้ผล แต่ฉันมั่นใจว่าฉันเองยังไม่เข้าใจวิธีการเขียน rewrites ขอบคุณอีกครั้ง!
at flag
ที่จริงต้องทำแค่เพิ่ม `/` ในตำแหน่งดังนี้: `สถานที่ / เมอร์ลิน { proxy_pass http://172.17.0.2:5555/; } ` เนื่องจากเครื่องหมายทับนั้นจะ "ลบ" ส่วนแรกของ uri (?) ดังนั้นจึงกลายเป็น `http://172.17.0.2/`
Score:0
ธง at

ตามที่ริชาร์ดสังเกตเห็น http://172.17.0.3/merlin จะถูกส่งต่อไปยัง http://172.17.0.2:5555/merlin ซึ่งไม่มีอยู่ ดังนั้น 404 สิ่งที่ฉันต้องทำคือใช้ เขียนใหม่ เพื่อเปลี่ยนสิ่งนั้น ในกรณีของฉันเปลี่ยนไป proxy_pass http://172.17.0.2:5555; ถึง proxy_pass http://172.17.0.2:5555/; เพียงพอ (ตอบว่าทำไม- ที่นี่).

โพสต์คำตอบ

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