Điểm:0

Proxy ngược đơn giản với nginx và docker cho 404

lá cờ at

Tôi có một thiết lập rất đơn giản. Ba vùng chứa trong docker mà tôi muốn liên lạc giữa, không có gì khác. Kẻ tấn công (kali với nginx), proxy ngược (alpine với nginx) và nạn nhân (alpine). Tôi muốn, bên trong nạn nhân, cuộn ngược proxy và truy cập trang web của kẻ tấn công. Cho đến nay tôi có thể truy cập trực tiếp trang web của kẻ tấn công bằng cách cuộn tròn http://172.17.0.2:5555 và proxy ngược của cuộn tròn http://172.17.0.3/ . Nhưng khi tôi làm cuộn tròn http://172.17.0.3/merlin Tôi có:

<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>

Đối với proxy ngược (172.17.0.3) của tôi /etc/nginx/conf.d/default.conf :

người phục vụ {
    nghe 80;
    nghe [::]:80;
    server_name proxy;

    #access_log /var/log/nginx/host.access.log chính;

    địa điểm / {
        gốc /usr/share/nginx/html;
        chỉ mục index.html index.htm;
    }

    địa điểm /merlin {
        proxy_pass http://172.17.0.2:5555;
    }
    #lỗi_trang 404 /404.html;

    # chuyển hướng trang lỗi máy chủ sang trang tĩnh /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    vị trí = /50x.html {
        gốc /usr/share/nginx/html;
    }
}

Đối với kẻ tấn công (172.17.0.2) của tôi /etc/nginx/conf.d/default.conf :

người phục vụ {
    nghe 5555;
    nghe [::]:5555;
    máy chủ_tên máy chủ cục bộ;

    #access_log /var/log/nginx/host.access.log chính;

    địa điểm / {
        gốc /usr/share/nginx/html;
        chỉ mục index.html index.htm;
    }


    #lỗi_trang 404 /404.html;

    # chuyển hướng trang lỗi máy chủ sang trang tĩnh /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    vị trí = /50x.html {
        gốc /usr/share/nginx/html;
    }

}

Grant Collins trên youtube đã quản lý một cái gì đó tương tự, nhưng tôi không thể làm cho nó hoạt động được.

Richard Smith avatar
lá cờ jp
`http://172.17.0.3/merlin` được chuyển đến `http://172.17.0.2:5555/merlin`, đây có lẽ là lý do tại sao bạn nhận được phản hồi 404.
lá cờ at
Nó là?? Tôi xin lỗi tôi không thấy điều đó, tôi có nên viết `proxy_pass` theo cách khác hay đó là thứ gì đó trong default.conf của kẻ tấn công?
Richard Smith avatar
lá cờ jp
Xem [Hỏi đáp này](https://serverfault.com/questions/379675/nginx-reverse-proxy-url-rewrite)
lá cờ at
Tôi nhận được nó ngay bây giờ, cảm ơn bạn! Tôi cần viết lại nếu tôi muốn nó chuyển đến `http://172.17.0.2:5555`. Tôi đã làm như thế này `rewrite ^/merlin?$ /break;` nhưng nó không hoạt động, mặc dù tôi chắc chắn rằng chỉ là tôi chưa hiểu cách viết rewrites. Cảm ơn một lần nữa!
lá cờ at
Trên thực tế, tất cả những gì cần làm là thêm một `/` vào vị trí như thế này: `vị trí /merlin { proxy_pass http://172.17.0.2:5555/; } ` Vì dấu gạch chéo đó sẽ "xóa" phần đầu tiên của uri(?) nên nó sẽ trở thành `http://172.17.0.2/`
Điểm:0
lá cờ at

Như Richard nhận thấy http://172.17.0.3/merlin được chuyển đến http://172.17.0.2:5555/merlin cái không tồn tại, do đó là 404. Điều tôi cần làm là sử dụng viết lại để thay đổi đó. Trong trường hợp của tôi thay đổi proxy_pass http://172.17.0.2:5555; đến proxy_pass http://172.17.0.2:5555/; đủ. (trả lời tại sao - đây).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.