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