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

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

3
มีเครื่องมือใดบ้างใน Windows ที่จะจำลอง / จำลองปัญหาเครือข่าย
ฉันกำลังมองหาเครื่องมือสำหรับ Windows ที่สามารถทำหน้าที่เป็น reverse-proxy ต่อหน้าเซิร์ฟเวอร์เพื่อแนะนำปัญหาเครือข่ายต่าง ๆ เช่นการกระวนกระวายใจความล่าช้าหรือการสูญหายของแพ็กเก็ต การตั้งค่าของฉันเป็นโซลูชันซอฟต์แวร์ที่จะทำงานบน Windows Httpd mod_proxy ไม่สนับสนุนการกำหนดค่าเช่นนี้และ googling สำหรับเครื่องมือในหมวดหมู่นี้กำลังพิสูจน์แล้วว่าไร้ผล

6
Reverse proxy คืออะไร
ฉันรู้ว่าพร็อกซีคืออะไร แต่ฉันไม่แน่ใจว่าพร็อกซีย้อนกลับคืออะไร สำหรับฉันดูเหมือนว่ามันอาจจะคล้ายกับโหลดบาลานซ์ ถูกต้องไหม

3
วิธีเขียนส่วนโดเมนของ Set-Cookie ในพร็อกซีย้อนกลับ nginx ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ฉันมีพร็อกซีย้อนกลับ nginx อย่างง่าย: server { server_name external.domain.com; location / { proxy_pass http://backend.int/; } } ปัญหาคือว่าSet-Cookieส่วนหัวของการตอบสนองมี;Domain=backend.intเพราะส่วนแบ็กเอนด์ไม่ทราบว่ามันกำลังถูกพร็อกซีย้อนกลับ ฉันจะทำให้ nginx เขียนเนื้อหาของSet-Cookieส่วนหัวการตอบกลับแทนที่;Domain=backend.intด้วยได้;Domain=external.domain.comอย่างไร การผ่านHostส่วนหัวไม่เปลี่ยนแปลงไม่ได้เป็นตัวเลือกในกรณีนี้ Apache httpdมีคุณสมบัตินี้อยู่ครู่หนึ่งดูProxyPassReverseCookieDomainแต่ฉันไม่สามารถหาวิธีที่จะทำได้ใน nginx

3
ส่งต่อส่วนหัวที่กำหนดเองจาก Nginx Reverse Proxy
ฉันมีเว็บเซิร์ฟเวอร์ nginx ซึ่งทำหน้าที่เป็นพร็อกซีย้อนกลับเพื่อส่งต่อคำขอไปยัง Apache สำหรับการจัดการเพิ่มเติม (ฉันขอให้คุณอย่าถามว่าทำไม) ฉันมีคำขอที่ฉันพยายามแนบส่วนหัวที่กำหนดเองและฉันต้องการให้ nginx ส่งต่อส่วนหัวที่กำหนดเองนั้นไปยัง Apache เพื่อให้ฉันสามารถทำอะไรกับมันได้ในแอป ฉันแหย่ผ่านHttpProxyModuleเอกสาร แต่พวกเขาไม่ได้อธิบายมากถึงแม้ว่าฉันจะอยู่ในสถานที่ที่เหมาะสม (มันอาจเป็นไปได้ว่าฉันไม่ได้) ฉันจะรับ nginx เพื่อส่งต่อX-CUSTOM-REFERRERส่วนหัวได้อย่างไร ยิ่งไปกว่านั้นถ้าเป็นไปได้ฉันต้องการให้ส่งต่อไปตามส่วนหัวที่กำหนดเองใด ๆที่เข้ามาหากว่าหลังถามคำถามมากเกินไปอดีตคนก่อนก็พอเพียงสำหรับความต้องการในปัจจุบันของฉัน อย่างที่คุณเห็นฉันยังใหม่กับ nginx ดังนั้นเวอร์ชันการแก้ไขจะมีประโยชน์ ขอบคุณ UPDATE ตัวอย่างที่เกี่ยวข้องจากการกำหนดค่าปัจจุบันของฉัน: location / { proxy_pass http://preview; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header X-Custom-Referrer $x_custom_referrer; }


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

2
การกำหนดค่า Nginx: Front-End Reverse Proxy ไปยังพอร์ตอื่น
ฉันมีเว็บเซิร์ฟเวอร์ขนาดเล็กที่ให้บริการการร้องขอบนพอร์ต 5010 มากกว่า 80 ฉันต้องการใช้ nginx เป็น front end proxy เพื่อรับคำร้องขอบนพอร์ต 80 จากนั้นปล่อยให้คำร้องขอเหล่านั้นถูกจัดการโดยพอร์ต 5010 ฉันติดตั้ง nginx เรียบร้อยแล้วและทำงานได้อย่างราบรื่นบน Ubuntu Karmic แต่ความพยายามของฉันในการกำหนดค่าเริ่มต้น nginx.conf ไม่สำเร็จ ฉันพยายามรวมไว้ในเซิร์ฟเวอร์ directive เพื่อฟังอาร์กิวเมนต์สำหรับพอร์ต 5010 ฉันได้ลองสั่ง proxy_pass ด้วย คำแนะนำเกี่ยวกับการเปลี่ยนแปลงที่จำเป็นต้องทำหรือคำสั่งที่จำเป็นต้องตั้งค่าเพื่อให้มีเพียงการส่งต่อพอร์ต

2
ใช้ HTTP / 2.0 ระหว่าง nginx reverse-proxy และเว็บเซิร์ฟเวอร์แบ็กเอนด์
ฉันใช้ nginx เป็น reverse-ssl-proxy หน้าเว็บเซิร์ฟเวอร์ส่วนหลังที่สามารถทำ HTTP / 2.0 ได้ ฉันสังเกตเห็นว่า nginx พร็อกซีร้องขอไปยังเซิร์ฟเวอร์เบื้องหลังผ่าน HTTP / 1.1 มากกว่า HTTP / 2.0 เป็นไปได้ไหมที่จะบอกให้ nginx ใช้การเชื่อมต่อ HTTP / 2.0 ที่ไม่เข้ารหัสแทน? ประสิทธิภาพนี้จะเพิ่มขึ้นหรือไม่

2
nginx เพิ่มเงื่อนไขส่วนหัวบนตัวแปร upstream_http_
ฉันมี reverse proxy บน nginx ซึ่งพร็อกซีค่อนข้างบางไซต์ ฉันเพิ่งเปิดใช้งาน HTTP Strict Transport Security สำหรับเว็บไซต์ที่เปิดใช้ SSL ทั้งหมด ตอนนี้ฉันมีเว็บไซต์หนึ่งที่ไม่ต้องการเปิดใช้งานนี้ ฉันคิดว่าฉันจะตรวจสอบอย่างง่าย ๆ ถ้าต้นน้ำของฉันส่ง - ส่วนStrict-Transport-Securityหัวให้ฉันแล้วและถ้าไม่ให้เพิ่มอีกหนึ่งอัน ด้วยวิธีนี้อัปสตรีมของฉันสามารถส่งส่วนหัว STS ที่มีmax-age=0เพื่อหลีกเลี่ยงการเปิดใช้งาน HSTS โดยพร็อกซี ฉันคิดว่าฉันเพิ่งเปลี่ยนการกำหนดค่าของฉันดังนี้ location / { proxy_pass http://webservers; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto "https"; if ($upstream_http_strict_transport_security = "") { add_header Strict-Transport-Security "max-age=15552000"; …

3
nginx เป็น reverse proxy พร้อมอัพสตรีม SSL
ฉันกำลังสร้างพร็อกซีสำหรับ API ภายในเพื่อให้ลูกค้าเชื่อมต่อโดยไม่ต้องติดตั้งใบรับรองที่ลงนามเอง ลูกค้า (สร้างขึ้นเป็นเจ้าของและใช้ภายในเท่านั้น) จะเชื่อมต่อผ่าน SSL ไปยังกล่อง nginx โดยที่ฉันใช้XSendfileเพื่อตรวจสอบข้อมูลรับรองในระดับแอปพลิเคชัน (แอปพลิเคชันราง) หากข้อมูลรับรองนั้นถูกต้องการเชื่อมต่อจะถูกส่งกลับไปยัง nginx โดยที่มันจะใช้ proxy_pass เพื่อส่งการเชื่อมต่อไปยังเซิร์ฟเวอร์ upstream ตอนนี้ใช้งานได้ดีสำหรับการเชื่อมต่อ http มาตรฐาน แต่ฉันพยายามหาวิธีเพิ่มใบรับรองของเราลงในส่วนผสม คำถามนี้เกือบจะเหมือนกันกับคำถามนี้แต่มีข้อกำหนดด้านใบรับรองที่น่าอึดอัดใจ เป็นไปได้ด้วย nginx หรือไม่ มีวิธีแก้ปัญหาที่ดีกว่านี้ไหม? ฉันต้องการชำระ http จากไคลเอ็นต์ -> nginx และใบรับรองที่ลงนามเองจาก nginx เป็น API

3
Reverse Proxy สามารถใช้ SNI กับ SSL pass through ได้หรือไม่
ฉันต้องให้บริการแอปพลิเคชันหลายรายการผ่าน https โดยใช้ที่อยู่ IP เดียว ใบรับรอง ssl ไม่ควรถูกจัดการบน reverse proxy มีการติดตั้งไว้ในแอพพลิเคชันเซิร์ฟเวอร์ reverse proxy สามารถกำหนดค่าให้ใช้ SNI และส่งผ่าน ssl ผ่านเพื่อยุติที่จุดปลายได้หรือไม่ เป็นไปได้โดยใช้บางอย่างเช่น Nginx หรือ Apache? การกำหนดค่ามีลักษณะอย่างไร

1
Nginx: วิธีการปิดใช้งานการร้องขอบัฟเฟอร์ของร่างกายโดยสิ้นเชิง
ฉันกำลังพยายามตั้งค่าMadsonicบนกล่อง Ubuntu ของฉันและให้ Nginx ทำงานต่อหน้ามัน ปัญหาคือฉันได้รับคำเตือนนี้ตลอดเวลาเมื่อฉันพยายามอัปโหลดเนื้อหาผ่านเว็บอินเตอร์เฟส: 31115#0: *14 a client request body is buffered to a temporary file นอกจากนี้ยังอธิบายว่าเหตุใดแถบความคืบหน้าในหน้าต่างอัปโหลดจึงไม่ทำงาน นี่คือการกำหนดค่า Nginx ที่เกี่ยวข้องของฉัน: # proxy the madsonic server here location / { proxy_pass https://madsonic-server/; proxy_redirect off; proxy_buffering off; proxy_request_buffering off; allow all; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header …

2
แก้ไขหน้า HTML ที่ส่งคืนโดยพร็อกซีย้อนกลับ nginx
ฉันมีการตั้งค่าพร็อกซีย้อนกลับสำหรับการเข้าถึงแอปพลิเคชันบุคคลที่สามที่อยู่ภายในอินทราเน็ตจากอินเทอร์เน็ต สมมติว่าแอปพลิเคชันนี้อยู่ใน URL: https://internalserver:8080/ (เข้าถึงได้จากอินทราเน็ตเท่านั้น) และพร็อกซีเปิดอยู่: https://proxyserver/ (เข้าถึงได้จากทุกที่ในโลก) พรอกซีได้รับการจัดการโดย nginx และใช้งานได้ เมื่อผู้ใช้เข้าถึงhttps://proxyserver/ พวกเขาได้รับเนื้อหาของ app https://internalserver:8080/ที่ ปัญหาคือว่าการประยุกต์ใช้คือการเขียน URL ที่สมบูรณ์ในการตอบสนองของ HTML ดังนั้นเมื่อผู้ใช้คลิกลิงก์ไปยังหน้าใหม่เบราว์เซอร์ที่มีการพยายามที่จะหาหน้าเว็บที่มีชื่อภายในของตนเช่น แทนhttps://internalserver:8080/somepage https://proxyserver/somepage ฉันรู้ว่านี่เป็นข้อบกพร่องของโปรแกรม แต่ฉันไม่สามารถแก้ไขโปรแกรมได้ ฉันสามารถสกัดกั้นการตอบสนองแก้ไข URL และส่ง (แก้ไข) ไปยังไคลเอนต์สุดท้ายด้วย nginx ได้หรือไม่ หรืออาจจะด้วยเครื่องมืออื่น? แก้ไข:ฉันเห็นคำถามนี้มาก่อน แต่กรณีของฉันเฉพาะเจาะจงมากขึ้นคำถามที่ยกมาขอให้แก้ไขโดยทั่วไป ในกรณีนั้นโปรแกรม ad-cgi ที่รวดเร็วเป็นทางออกที่ดีที่สุดสิ่งที่ฉันต้องการคือโซลูชันที่เฉพาะเจาะจงมากขึ้นสำหรับ (ฉันคิดว่า) เป็นสถานการณ์ที่พบบ่อยมากขึ้น ในขณะที่โปรแกรม cgi ที่รวดเร็วสามารถทำงานได้ฉันกำลังมองหาสิ่งที่ง่ายที่สุดและแข็งแกร่งขึ้นและอาจพิสูจน์ได้ในโลกแห่งความเป็นจริงทางออกสำหรับสถานการณ์นี้

3
Apache proxy_http เปลี่ยนเส้นทางไปยัง ip และตั้งชื่อโฮสต์
หวังว่าพวกคุณจะช่วยฉันด้วยปัญหาพร็อกซี่ที่ฉันมี สิ่งที่ฉันมีอยู่แล้ว ฉันได้ตั้งค่าพร็อกซีย้อนกลับ apache http ให้เป็นคำขอพร็อกซีจาก * .proxy.domain เป็น * .intern.domain apache เป็นวิธีเดียวที่จะเข้าถึงเว็บแอปพลิเคชันภายในของฉันจากเครือข่ายภายนอก ตัวอย่าง: app.proxy.domain -> app.intern.domain mail.proxy.domain -> mail.intern.domain ทั้งหมดนี้ใช้งานได้ดี แต่ฉันมีปัญหาดังต่อไปนี้ ปัญหา ฉันต้องการพร็อกซี่คำขอต่อไปนี้: app.proxy.domain -> app.internal.domain app-dev.proxy.domain -> app-dev.internal.domain นี่ไม่ใช่ปัญหา แต่น่าเสียดายที่เซิร์ฟเวอร์แอป dev รันสำเนาที่แน่นอนของ webapplication ของเซิร์ฟเวอร์แอปและ webapplication นี้จะตอบกลับเฉพาะชื่อโฮสต์ของมัน (app.intern.domain) ดังนั้นสิ่งที่ฉันต้องทำคือพร็อกซีต่อไปนี้ app.proxy.domain -> app.internal.domain (10.0.1.1) app-dev.proxy.domain -> app.internal.domain (10.0.1.2) ฉันสามารถทำสิ่งที่สองโดยเพิ่ม "10.0.1.2 …

2
พร็อกซี: ข้อผิดพลาด AH00898: ข้อผิดพลาดระหว่าง SSL Handshake กับเซิร์ฟเวอร์ระยะไกล
ฉันมีเซิร์ฟเวอร์ที่ทำหน้าที่เป็น front-end สำหรับ cPanel mailserver ในเครือข่าย พร็อกซี apache บนเซิร์ฟเวอร์ส่วนหน้าทำงานนาน 152 วันโดยไม่มีข้อผิดพลาดจากนั้นฉันได้รับข้อผิดพลาด 500/502 ทันทีเมื่อใช้เพื่อเข้าถึงเว็บเมล์ไคลเอ็นต์ของเมลเซิร์ฟเวอร์ เซิร์ฟเวอร์หน้าใช้ใบรับรอง SSL ที่ลงนามแล้ว cPanel เซิร์ฟเวอร์กำลังใช้ใบรับรองที่ลงนามด้วยตนเอง นี่คือเอาต์พุตบันทึกข้อผิดพลาดจากเซิร์ฟเวอร์ส่วนหน้าเมื่อเกิดขึ้นครั้งแรก: [Tue Sep 10 18:22:52.959291 2013] [proxy:error] [pid 19531] (502)Unknown error 502: [client 173.xx.xx.xx:9558] AH01084: pass request body failed to 184.xx.xx.xx:2096 (184.xx.xx.xx), referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX [Tue Sep 10 18:22:52.959469 2013] [proxy:error] [pid 19531] …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.