เป็นไปได้หรือไม่ที่จะใช้ Nginx เป็นพร็อกซี HTTP / HTTPS
เป็นไปได้หรือไม่ที่จะใช้ Nginx เป็นพร็อกซี HTTP / HTTPS
คำตอบ:
หลังจากการทดสอบบางอย่างฉันได้พบกับฉันสำหรับการกำหนดค่าต่อไปนี้
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;
}
}
การกำหนดค่านี้ใช้งานได้กับ HTTP เท่านั้นไม่ใช่สำหรับ HTTPS
ฉันคิดว่าคำตอบสั้น ๆ คือไม่มันไม่ได้เขียนขึ้นสำหรับการส่งต่อพร็อกซี่
UPDATE
เพื่อชี้แจงคำสั่งของฉันด้านบน:
NGINX ไม่เคยเขียนด้วยการคาดเดาล่วงหน้า - ในขณะที่ jerry สามารถกำหนดค่าให้ทำสิ่งที่คุณต้องการได้จากระยะไกลคุณจะต้องเข้าใจข้อ จำกัด ต่อไปนี้:
ข้อควรพิจารณาอื่น ๆ ที่เป็นไปได้ที่ไม่เป็นที่รู้จักในเวลานี้:
หากคุณต้องการใช้พร็อกซี HTTP / HTTPS คุณควรใช้ Squid มันถูกเขียนขึ้นเพื่อทำสิ่งนั้นอย่างแน่นอน Nginx ถูกเขียนขึ้นเพื่อทำหน้าที่เป็น reverse proxy และ load balancer แต่ไม่ใช่ proxy ข้างหน้า
listen ... default_server
1: 2: หรือserver_name ""
2:server_name _
proxy_pass $scheme://$http_host
ข้อ จำกัด : การ poxying ไปยัง upstreams ด้วยพอร์ต 80 เท่านั้น ไม่ประมวลผลการเปลี่ยนเส้นทางตัวเอง