Điểm:0

Trang web sử dụng URL sai sau khi proxy qua Nginx

lá cờ cn

Đây là lần đầu tiên tôi sử dụng nginx và tôi thấy tình huống này khá khó hiểu. Trang web của tôi được lưu trữ tại web.example.com và để đến được phần phụ trợ, các yêu cầu được định tuyến qua nginx dưới dạng proxy ngược. Sau khi xử lý qua nginx, URL sẽ thay đổi thành URL của máy chủ nginx (proxy.example.com) thay vì là URL của trang web.

Dòng chảy trông giống như thế này:

web.example.com -> nginx (proxy.example.com) -> phụ trợ (service.example.com)

Khi tôi đăng nhập yêu cầu trong dịch vụ phụ trợ, tôi có thể thấy rằng x-forwarded-host được đặt thành proxy.example.com. Điều này có đúng không hay nó nên được đặt thành web.example.com đây?

Tệp nginx.conf là:

sự kiện {
    công_nhân kết_nối 1024 ;
}

http {
    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;

    log_format chính '$remote_addr - $remote_user [$time_local] $status '
        '"$request" $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';

    nhật ký access_log/access.log chính;

    máy chủ { # proxy ngược đơn giản
        nghe 80;
        server_name proxy.example.com;

        vị trí / địa điểm {
            proxy_set_header Máy chủ $http_host;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            proxy_set_header x-chuyển tiếp-máy chủ $host;
            proxy_set_header máy chủ chuyển tiếp x $host;
            proxy_set_header x-real-ip $remote_addr;
            bật proxy_pass_request_headers;
            proxy_pass http://service.example.com$request_uri;
        }
    }
}

Làm cách nào để lấy URL để quay lại web.example.com/site sau khi đi qua luồng này thay vì hiển thị dưới dạng proxy.example.com/site?

Cảm ơn.

Michael Hampton avatar
lá cờ cz
Cấu hình này có vẻ chính xác. Chính xác những gì bạn thấy đó là một vấn đề? Hãy cụ thể.
lá cờ cn
@MichaelHampton, vấn đề là URL của proxy bị lộ. Tại sao điều đó xảy ra? Tôi muốn URL vẫn là web.example.com.
Michael Hampton avatar
lá cờ cz
Chính xác ý của bạn là gì? Mô tả mơ hồ là vô ích.
lá cờ cn
URL trong thanh vị trí của trình duyệt thay đổi từ web.example.com thành proxy.example.com để người dùng cuối có thể thấy URL của proxy. tôi không nghĩ điều đó đáng lẽ phải xảy ra
Michael Hampton avatar
lá cờ cz
OK, bây giờ tôi nhận được nó. Tuy nhiên, điều đó không phải do nginx gây ra; đó là phụ trợ của bạn.
lá cờ cn
@MichaelHampton bạn có thể nói thêm không? Phần phụ trợ của tôi sẽ thay đổi URL trong thanh vị trí như thế nào?
Michael Hampton avatar
lá cờ cz
Không có cách nào mà bất kỳ ai trong chúng ta có thể biết được; đó là phụ trợ của bạn và bạn đã không nói gì về nó là gì.
lá cờ cn
Phần phụ trợ là một ứng dụng java chạy trên Tomcat 9. Tôi đang ghi nhật ký các tiêu đề đi vào ứng dụng đó và thấy các tiêu đề x-forward-* được đặt thành `proxy.example.com`
Michael Hampton avatar
lá cờ cz
Tiêu đề gì? Một lần nữa, hãy cụ thể.
lá cờ cn
x-forward-host và x-forward-for đều được đặt thành proxy.example.com
Michael Hampton avatar
lá cờ cz
Điều đó không tương ứng với cấu hình nginx mà bạn đã hiển thị. Những gì khác là trong ngăn xếp này? Lần này, hãy cho chúng tôi biết mọi thứ và đừng bỏ qua các chi tiết liên quan.
lá cờ cn
@MichaelHampton vâng, tôi đã thêm một vài tiêu đề nữa khi gỡ lỗi.
lá cờ ar
Bạn có thể vui lòng giải thích về ngăn xếp của bạn? Bạn nói rằng bạn có một trang web tại `web.example.com` và bạn sử dụng nginx làm proxy ngược cho `service.example.com` vì vậy, đó là trang web của bạn được máy chủ nginx phục vụ và bối cảnh `/site` được ủy quyền đến phần phụ trợ hoặc bạn có phần tử trước đó trước nginx đó không? Nếu bạn không có nó, tại sao máy chủ nginx được gọi nội bộ là `proxy.example.com` thay vì `web.example.com`?

Đă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.