Câu trả lời:
Sau một số thử nghiệm, tôi thấy làm việc cho tôi cấu hình sau.
server {
server_name ~^(www\.)?(?<domain>.+)$;
access_log /var/log/nginx/proxy.access.log main;
error_log /var/log/nginx/proxy.error.log crit;
listen 10.255.1.13:8080;
resolver 8.8.8.8;
location / {
proxy_pass http://$domain;
proxy_redirect off;
proxy_set_header Host $host;
# Optional headers
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For
# $proxy_add_x_forwarded_for;
}
}
Cấu hình này chỉ hoạt động cho HTTP, không phải cho HTTPS.
Tôi nghĩ rằng câu trả lời ngắn gọn là không, nó không được viết để chuyển tiếp ủy quyền
CẬP NHẬT
để làm rõ tuyên bố của tôi ở trên:
NGINX không bao giờ được viết với proxy chuyển tiếp trong tâm trí - trong khi bằng cách nào đó có thể jerry điều chỉnh cấu hình để thực hiện những gì bạn muốn, bạn sẽ phải hiểu những hạn chế sau:
Những cân nhắc khác có thể chưa biết vào lúc này:
Nếu bạn muốn sử dụng proxy HTTP / HTTPS, bạn nên sử dụng Squid. Nó được viết để làm chính xác điều đó. Nginx được viết để hoạt động như một proxy ngược và cân bằng tải, nhưng không phải là một proxy chuyển tiếp.
listen ... default_server
. 2:server_name ""
hoặcserver_name _
. 2 :proxy_pass $scheme://$http_host
. Những hạn chế: chỉ đánh thuế ngược dòng với cổng 80; không xử lý chuyển hướng chính nó.