คำถามติดแท็ก reverse-proxy

reverse proxy เป็นพร็อกซีเซิร์ฟเวอร์ชนิดหนึ่งที่ดึงทรัพยากรจากชุดเซิร์ฟเวอร์ที่กำหนดไว้เฉพาะสำหรับลูกค้า มันถูกใช้ในกรณีที่มีข้อได้เปรียบที่จะไม่เปิดเผยเว็บเซิร์ฟเวอร์พร้อมเนื้อหาโดยตรงไม่ว่าจะเพื่อเหตุผลด้านความปลอดภัยหรือเนื่องจากไม่มีที่อยู่ IP สาธารณะที่มีอยู่

1
วิธีบันทึกค่าดั้งเดิมของ $ remote_addr เมื่อใช้ Real-IP
สภาพแวดล้อมของฉันมีคำขอของผู้ใช้ที่ส่งผ่านระบบจำนวนมาก: [ลูกค้า] -> [ELB] ---> [nginx] -> [เว็บ] (ELB = AWS ตัวโหลดบาลานซ์แบบยืดหยุ่น) ขอบคุณคำตอบนี้ฉันมี nginx ที่กำหนดและส่งต่อที่อยู่ IP ของไคลเอ็นต์ที่ถูกต้องไปยังเซิร์ฟเวอร์ upstream (เว็บ) ด้วยX-Forwarded-ForและX-Real_IPส่วนหัว การกำหนดค่า nginx ที่เกี่ยวข้อง: real_ip_header X-Forwarded-For; set_real_ip_from 10.0.0.0/8; real_ip_recursive on; proxy_set_header X-Real-IP $remote_addr; ปัญหาของฉันคือสิ่งนี้โมดูล Real IP ใน nginx จะแทนที่$remote_addrตัวแปรที่มีอยู่ด้วยผลลัพธ์ของการX-Forwarded-Forคำนวณ สิ่งนี้ทำให้ IP ไคลเอนต์ต้นทางของฉัน แต่ฉันสูญเสียที่อยู่ IP ของระบบที่ส่งคำขอไปยังพรอกซี (เช่น ELB) โดยรวมแล้วการมี IP ของลูกค้าสำคัญกว่าสำหรับฉัน แต่ฉันต้องการบันทึกการร้องขอทั้งหมดเพื่อให้ฉันสามารถเข้าใจ …

2
โพร 1.5.2 ที่อยู่เบื้องหลัง Apache 2.4 reverse proxy
ฉันต้องการวางโพรไว้ข้างหลังพร็อกซีย้อนกลับ Apache สำหรับการตรวจสอบสิทธิ์และการควบคุมการเข้าถึง นี่เป็นเวอร์ชั่นของ Prometheus ที่มาพร้อมกับ Debian Stretch ( prometheus --versionหมายถึงversion 1.5.2+ds (branch: debian/sid, revision: 1.5.2+ds-2+b3)) และสำหรับ Apache 2.4 ฉันมีโพรฟังอยู่แล้ว127.0.0.1:9090(เช่นอ้างอิงจากnetstat -tlpn) และฉันมีสิ่งนี้ในVirtualHostการกำหนดค่าของฉัน: <Location "/prometheus"> ProxyPass "http://localhost:9090" ProxyPassReverse "http://localhost:9090" </Location> อย่างไรก็ตามเมื่อฉันไปhttps://my-server.com/prometheusเปลี่ยนเส้นทางที่จะhttps://my-server.com/graphเกิดขึ้น (โดยรหัสสถานะ HTTP 302 และLocation: /graph) ซึ่งไม่สามารถให้บริการโดย reverse proxy ในการกำหนดค่าปัจจุบัน ฉันจะเปลี่ยนการกำหนดค่าสำหรับ Prometheus รุ่นนี้ได้อย่างไรซึ่งการเยี่ยมชมhttps://my-server.com/prometheusจะเปลี่ยนเส้นทางให้สำเร็จhttps://my-server.com/prometheus/graphเช่น "สิ่ง" ที่เกี่ยวข้องกับ Prometheus ทั้งหมดจะได้รับบริการภายใต้คำนำหน้า URL ทั่วไป/prometheus? อัพเดทสิ่งหนึ่งที่จิ๊กซอร์ของฉันในปัจจุบันคือ Prometheus …

1
การใช้ nginx กับ reverse proxy ใน container docker ไม่ทำงาน
ฉันต้องการให้ทุกสิ่งที่เริ่มต้นด้วย/apiถูกนำไปhttp://localhost:3007 นี่คือ nginx.conf ของฉัน user nginx; worker_processes 1; daemon off; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/html; index index.html index.htm; } location /api { proxy_pass http://localhost:3007; proxy_read_timeout 5m; } error_page 500 …

1
Apache Reverse Proxy Config
ฉันยังค่อนข้างใหม่กับ Apache และการกำหนดค่าและมีปัญหากับเว็บเซิร์ฟเวอร์ของฉันที่ฉันให้บริการ Redmine แอปพลิเคชันทับทิมและเนื้อหาคงที่ Apache 2.2 ปัจจุบันมีการตั้งค่าพร็อกซีต่อไปนี้: ProxyPass /portal https://mypage.domain.com:8181/portal ProxyPassReverse /portal https://mypage.domain.com:8181/portal ProxyPass /examples http://mypage.domain.com:8555/portal ProxyPassReverse /examples http://mypage.domain.com:8555/portal ProxyPass / balancer://redmine_cluster/ ProxyPassReverse / balancer://redmine_cluster/ <Proxy balancer://redmine_cluster> BalancerMember http://REDMINEMACHINENAME:3000/ </Proxy> DocumentRoot "X:/app/Redmine/public" <Directory "X:/app/Redmine/public"> Require all granted Options -MultiViews </Directory> RequestHeader set X-Forwarded-Proto "https" เมื่อพยายามเข้าถึง: Redmine: mypage.domain.com มันพาฉันไปที่ Redmine …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.