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


26
จากด้านในของ Docker container ฉันจะเชื่อมต่อกับ localhost ของเครื่องได้อย่างไร
ดังนั้นฉันมี Nginx ที่ทำงานอยู่ภายใน container docker, ฉันมี mysql ที่ทำงานบน localhost, ฉันต้องการเชื่อมต่อ MySql จากภายใน Nginx ของฉัน MySql กำลังทำงานบน localhost และไม่เปิดเผยพอร์ตไปสู่โลกภายนอกดังนั้นมันจึงถูกผูกไว้กับ localhost ไม่ได้ถูกผูกไว้กับที่อยู่ IP ของเครื่อง มีวิธีใดบ้างที่จะเชื่อมต่อกับ MySql นี้หรือโปรแกรมอื่น ๆ บน localhost จากภายใน container docker นี้? คำถามนี้แตกต่างจาก "วิธีรับที่อยู่ IP ของโฮสต์นักเทียบท่าจากภายในคอนเทนเนอร์นักเทียบท่า" เนื่องจากข้อเท็จจริงที่ว่าที่อยู่ IP ของโฮสต์นักเทียบท่าอาจเป็น IP สาธารณะหรือ IP ส่วนตัวในเครือข่ายซึ่งอาจหรืออาจ ไม่สามารถเข้าถึงได้จากภายในคอนเทนเนอร์ของนักเทียบท่า (ฉันหมายถึง IP สาธารณะหากโฮสต์ที่ AWS หรือบางอย่าง) แม้ว่าคุณจะมีที่อยู่ …

9
พร็อกซีที่มี express.js
เพื่อหลีกเลี่ยงปัญหา AJAX ในโดเมนเดียวกันฉันต้องการให้ node.js เว็บเซิร์ฟเวอร์ของฉันส่งต่อคำขอทั้งหมดจาก URL /api/BLABLAไปยังเซิร์ฟเวอร์อื่นother_domain.com:3000/BLABLAและกลับสู่ผู้ใช้ในสิ่งเดียวกันกับที่รีโมตเซิร์ฟเวอร์นี้ส่งคืนโดยโปร่งใส URL อื่น ๆ ทั้งหมด (ด้านข้าง/api/*) จะต้องให้บริการโดยตรงไม่ต้องใช้ผู้รับมอบฉันทะ ฉันจะบรรลุสิ่งนี้ด้วย node.js + express.js ได้อย่างไร คุณสามารถยกตัวอย่างรหัสง่ายๆได้หรือไม่? (ทั้งเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ระยะไกล3000อยู่ภายใต้การควบคุมของฉันทั้งสองทำงานอยู่ node.js กับ express.js) จนถึงตอนนี้ฉันพบhttps://github.com/http-party/node-http-proxyแต่การอ่านเอกสารมีไม่ได้ทำให้ฉันฉลาดขึ้น ฉันลงเอยด้วย var proxy = new httpProxy.RoutingProxy(); app.all("/api/*", function(req, res) { console.log("old request url " + req.url) req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part …

8
Nginx reverse proxy ทำให้เกิด 504 Gateway Timeout
ฉันใช้ Nginx เป็นพร็อกซีย้อนกลับที่รับคำขอจากนั้นใช้ proxy_pass เพื่อรับเว็บแอปพลิเคชันจริงจากเซิร์ฟเวอร์ต้นน้ำที่ทำงานบนพอร์ต 8001 หากฉันไปที่ mywebsite.com หรือทำ wget ฉันจะได้รับ 504 Gateway Timeout หลังจาก 60 วินาที ... อย่างไรก็ตามหากฉันโหลด mywebsite.com:8001 แอปพลิเคชันจะโหลดตามที่คาดไว้! มีบางอย่างที่ขัดขวาง Nginx จากการสื่อสารกับเซิร์ฟเวอร์ต้นน้ำ ทั้งหมดนี้เริ่มต้นขึ้นหลังจาก บริษัท โฮสติ้งของฉันรีเซ็ตเครื่องสิ่งที่ฉันกำลังทำงานอยู่ก่อนหน้านั้นไม่มีปัญหาใด ๆ นี่คือบล็อกเซิร์ฟเวอร์ vhosts ของฉัน: server { listen 80; server_name mywebsite.com; root /home/user/public_html/mywebsite.com/public; access_log /home/user/public_html/mywebsite.com/log/access.log upstreamlog; error_log /home/user/public_html/mywebsite.com/log/error.log; location / { proxy_pass http://xxx.xxx.xxx.xxx:8001; proxy_redirect …

3
เกิดข้อผิดพลาดระหว่าง SSL Handshake กับเซิร์ฟเวอร์ระยะไกล
ฉันได้Apache2(ฟัง 443) และเว็บแอปที่ทำงานบนTomcat7(ฟังบน 8443) Ubuntuบน ฉันตั้งค่า apache2 เป็น reverse proxy เพื่อให้ฉันเข้าถึงเว็บแอปผ่านพอร์ต 443 แทนที่จะเป็น 8443 นอกจากนี้ฉันต้องมีการสื่อสาร SSL ไม่เพียง แต่ระหว่างเบราว์เซอร์และ apache2 เท่านั้น แต่ยังอยู่ระหว่าง apache2 และ tomcat7 ด้วยดังนั้นฉันจึงตั้งค่า SSL ทั้งบน apache2 และ tomcat7 . ถ้าฉันพยายามเข้าถึงเว็บแอปโดยติดต่อ tomcat7 โดยตรงทุกอย่างก็เรียบร้อยดี ปัญหาคือเมื่อฉันพยายามเข้าถึงเว็บแอปของ tomcat ผ่าน apache2 (reverse proxy) บนเบราว์เซอร์ปรากฏข้อผิดพลาด: Proxy Error The proxy server could not handle the …

3
เกตเวย์ API เทียบกับพร็อกซีย้อนกลับ
เพื่อที่จะจัดการกับสถาปัตยกรรม MICROSERVICE ก็มักจะใช้ควบคู่ไปกับพร็อกซี (Reverse เช่น Nginx หรือ Apache httpd) และสำหรับการตัดความกังวลการดำเนินการข้าม รูปแบบเกตเวย์ API ถูกนำมาใช้ บางครั้ง Reverse proxy ทำงานกับเกตเวย์ API จะเป็นการดีที่จะเห็นความแตกต่างที่ชัดเจนระหว่างสองแนวทางนี้ ดูเหมือนว่าประโยชน์ที่เป็นไปได้ของการใช้งานเกตเวย์ API คือการเรียกใช้ไมโครเซอร์วิสหลาย ๆ ตัวและรวบรวมผลลัพธ์ ความรับผิดชอบอื่น ๆ ทั้งหมดของเกตเวย์ API สามารถใช้งานได้โดยใช้ Reverse Proxy เช่น: การพิสูจน์ตัวตน (สามารถทำได้โดยใช้สคริปต์ nginx LUA) ความปลอดภัยในการขนส่ง ตัวมันเองงาน Reverse Proxy; โหลดบาลานซ์ .... จากนี้มีคำถามหลายข้อ: มันสมเหตุสมผลหรือไม่ที่จะใช้เกตเวย์ API และพร็อกซีย้อนกลับพร้อมกัน (ดังตัวอย่างคำขอ -> เกตเวย์ Api-> …

3
วิธีให้บริการไฟล์คงที่ที่มีอยู่ทั้งหมดโดยตรงกับ NGINX แต่พร็อกซีส่วนที่เหลือไปยังเซิร์ฟเวอร์แบ็กเอนด์
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (-f $request_filename) { access_log off; expires 30d; break; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; # backend server listening break; } } ด้านบนจะให้บริการไฟล์ที่มีอยู่ทั้งหมดโดยตรงโดยใช้ Nginx (เช่น Nginx แสดงซอร์สโค้ด PHP) หรือส่งต่อคำขอไปยัง Apache ฉันจำเป็นต้องแยกไฟล์ * .php ออกจากกฎเพื่อให้คำขอสำหรับ * .php ถูกส่งไปยัง …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.