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

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

1
การกำหนดค่า Apache 2.4 mod_proxy_wstunnel สำหรับ Socket.IO 1.0
ฉันกำลังพยายามกำหนดค่า Apache 2.4 สำหรับการเชื่อมต่อกับ websocket สำหรับ socket.io กับเซิร์ฟเวอร์ websocket node.js โดยใช้ mod_proxy_wstunnel เราใช้งานได้ดีกับ socket.io 0.9 แต่ด้วยรีลีส 1.0 พวกเขาเปลี่ยนจุดสิ้นสุดของซ็อกเก็ตเป็นพารามิเตอร์การค้นหาและตอนนี้ฉันมีปัญหาในการกำหนดค่า apache ด้วยคำสั่งพร็อกซีที่ถูกต้อง คำขอทั้งหมด/socket.io/?EIO=N&transport=websocket(ที่ N คือหลักใด ๆ มักจะ 2) จำเป็นที่จะต้องถูกส่งต่อไปws://localhost:8082/socket.io/แต่คำขออื่น ๆ http://localhost:8082/socket.io/ทั้งหมดจะต้องมีการส่งต่อไปยัง ฉันได้ลองใช้รูปแบบต่าง ๆ ต่อไปนี้ทั้งสองแบบ: ProxyPass /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPassReverse /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ . RewriteRule /socket.io/?EIO=([0-9]+)&transport=websocket ws://localhost:8082/socket.io/ [QSA,P] ProxyPass …

7
พร็อกซีย้อนกลับจะอยู่หน้าเว็บเซิร์ฟเวอร์จะปรับปรุงความปลอดภัยหรือไม่
ผู้เชี่ยวชาญด้านความปลอดภัยของบุคคลที่สามขอแนะนำให้เราเรียกใช้พร็อกซีย้อนกลับต่อหน้าเว็บเซิร์ฟเวอร์ (โฮสต์ทั้งหมดใน DMZ) เป็นมาตรการรักษาความปลอดภัยที่ดีที่สุด ฉันรู้ว่านี่เป็นสถาปัตยกรรมทั่วไปที่แนะนำเนื่องจากมีการรักษาความปลอดภัยระดับต่อหน้าเว็บแอปพลิเคชันเพื่อป้องกันแฮกเกอร์ อย่างไรก็ตามในฐานะที่เป็นพร็อกซีย้อนกลับอย่างสนุกสนาน HTTP การกลับไปกลับมาระหว่างผู้ใช้และเว็บเซิร์ฟเวอร์ภายในจะไม่ให้มาตรการป้องกันการแฮ็คบนเว็บเซิร์ฟเวอร์เอง กล่าวอีกนัยหนึ่งถ้าเว็บแอปของคุณมีช่องโหว่ความปลอดภัยพร็อกซีจะไม่ให้ความปลอดภัยที่มีความหมาย และเนื่องจากความเสี่ยงของการโจมตีแอปพลิเคชันบนเว็บนั้นสูงกว่าการโจมตีด้วยพร็อกซีมากมีมากขึ้นโดยการเพิ่มกล่องพิเศษตรงกลางหรือไม่ เราจะไม่ใช้ความสามารถในการแคชใด ๆ ของ reverse proxy - เป็นเพียงเครื่องมือโง่ ๆ ที่จะส่งแพ็กเก็ตไปมา มีอะไรอีกบ้างที่ฉันหายไปที่นี่ การตรวจสอบแพ็คเก็ต HTTP พร็อกซีย้อนกลับทำได้ดีมากมันสามารถตรวจจับการโจมตีที่มีความหมายโดยไม่มีคอขวดประสิทธิภาพที่สำคัญหรือนี่เป็นเพียงตัวอย่างหนึ่งของ Security Theatre? พร็อกซีย้อนกลับคือ MS ISA fwiw

1
เปลี่ยนเส้นทางย่อยไปยังโฮสต์ภายนอกด้วย Nginx
ฉันต้องสร้างแผนที่ง่าย ๆ ใน Nginx ที่เปลี่ยนเส้นทาง subpath ไปยังเซิร์ฟเวอร์อื่นที่อยู่ใน subnet เดียวกัน เซิร์ฟเวอร์ Nginx: 192.168.0.2 เซิร์ฟเวอร์ Tomcat: 192.168.0.3:8443 ฉันพยายามใส่สิ่งนี้ในส่วนเซิร์ฟเวอร์ location /tomcatapi/ { rewrite /tomcatapi/(.*) $1 break; proxy_pass http://192.168.0.3:8443; } แต่ทั้งหมดที่ฉันได้รับการเข้าถึงhttp://www.myservice.com/tomcatapi/เป็นหน้าข้อผิดพลาด 500 และในแฟ้มบันทึก nginx ฉันมีข้อผิดพลาดนี้: the rewritten URI has a zero length สิ่งที่ฉันขาดหายไปในความเชื่อมั่นนี้?

2
การแสดงจุดปลายพร็อกซีหลายรายการภายใต้ตำแหน่งใน Nginx
ฉันมีจุดปลาย API สองสามอย่างที่ฉันต้องการให้บริการจากตำแหน่งเดียวของที่/apiมีพา ธ ย่อยไปยังจุดปลายที่แตกต่างกัน โดยเฉพาะฉันต้องการ webdis จะสามารถใช้ได้ใน/apiและ API /api/mypathที่เป็นกรรมสิทธิ์ที่มีอยู่ใน ฉันไม่กังวลเกี่ยวกับการปะทะกันกับ webdis API เพราะฉันใช้ subpaths ซึ่งไม่น่าจะขัดแย้งกับชื่อคำสั่ง redis และยังสามารถควบคุมการออกแบบ API ได้อย่างสมบูรณ์เพื่อหลีกเลี่ยงการปะทะกัน นี่คือไฟล์กำหนดค่าจากเซิร์ฟเวอร์ทดสอบของฉันที่ฉันแฮ็ค: server { listen 80; server_name localhost; server_name 192.168.3.90; server_name 127.0.0.1; location / { root /home/me/src/phoenix/ui; index index.html; } # temporary hardcoded workaround location = /api/mypath/about { proxy_pass http://localhost:3936/v1/about; } …

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

3
ตั้งส่วนหัวใน apache หากยังไม่มีอยู่
ฉันมีพร็อกซีที่ฉีดส่วนหัวบางส่วน แต่ฉันต้องการแก้ไขเพื่อให้ตั้งค่าเฉพาะส่วนหัวหากไม่ได้มีอยู่แล้ว: <Location /api> RequestHeader set MY_HEADER "value" ProxyPass http://127.0.0.1:8000/api ProxypassReverse http://127.0.0.1:8000/api </Location> เป็นไปได้ไหม

3
nginx failover โดยไม่มี load balance
ฉันมีปัญหาในการกำหนดค่า nginx ฉันใช้ nignx เป็น reverse proxy ฉันต้องการส่งคำขอทั้งหมดไปยังเซิร์ฟเวอร์เครื่องแรก หากเซิร์ฟเวอร์แรกไม่ทำงานฉันต้องการส่งคำขอไปยังเซิร์ฟเวอร์ที่สอง กล่าวโดยย่อฉันจะมีวิธีแก้ไขปัญหาความล้มเหลวได้อย่างไรโดยไม่ต้องทำโหลดบาลานซ์?

2
วานิชเมื่อเทียบกับพร็อกซี่ย้อนกลับอื่น ๆ
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำงานกับองค์กรที่ปรับใช้ Varnish เป็นแคชพร็อกซีย้อนกลับสำหรับการรับส่งข้อมูลเว็บทั้งหมดของพวกเขา การรับส่งข้อมูลของพวกเขาเป็นเว็บไซต์ที่สร้างโดยลูกค้าจำนวนมากโดยมีการรวบรวมสินทรัพย์แบบคงที่ตามปกติ ในขณะที่ฉันพยายามที่จะชอบเคลือบเงา (ฉันคิดว่ามันมีสถาปัตยกรรมที่ดีงามตามหลักการ) ฉันมีปัญหาในการจัดการและแก้ไขปัญหาที่เกิดขึ้นดังนั้นฉันจึงสงสัยว่ามันเป็นตัวเลือกที่เหมาะสมจริงๆ ก่อนหน้านี้ฉันเคยใช้ squid เป็นพร็อกซีย้อนกลับ แต่ไม่ใช่ในบทบาทประเภทเดียวกันดังนั้นฉันจึงไม่มีพื้นฐานที่ชัดเจนสำหรับการเปรียบเทียบ คำถามของฉันมีเป้าหมายอยู่ที่คนที่ปรับใช้วานิชในการผลิตหรือประเมินอย่างจริงจังกับทางเลือกอื่น ๆ : คุณใช้วานิชหรือติดท้ายพร็อกซีอื่นหรือไม่ อะไรคือจุดสำคัญของคุณในการอยู่กับมันหรือเปลี่ยนไปและถ้าคุณใช้อย่างอื่นคุณใช้อะไร?

1
วิธีกำหนดค่า nginx เพื่อให้ทำงานกับ Express ได้อย่างไร
ฉันพยายามกำหนดค่า nginx ดังนั้นจึงproxy_passขอให้แอปโหนดของฉัน คำถามเกี่ยวกับ StackOverflow มี upvotes มากมาย: /programming/5009324/node-js-nginx-and-nowและฉันใช้ config จากที่นั่น (แต่เนื่องจากคำถามเกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์มันควรจะอยู่ใน ServerFault) นี่คือการกำหนดค่า nginx: server { listen 80; listen [::]:80; root /var/www/services.stefanow.net/public_html; index index.html index.htm; server_name services.stefanow.net; location / { try_files $uri $uri/ =404; } location /test-express { proxy_pass http://127.0.0.1:3002; } location /test-http { proxy_pass http://127.0.0.1:3003; } } ใช้โหนดธรรมดา: …

2
Apache URL เขียนใหม่ใน reverse proxy
ฉันปรับใช้ Apache หน้าแอปพลิเคชันที่โฮสต์โดย Karaf (Apache และ Karaf อยู่บนเซิร์ฟเวอร์ที่แยกต่างหาก) ฉันต้องการ Apache ให้ทำงานเป็น reverse proxy และซ่อนบางส่วนของ URL URL ที่จะได้รับเข้าสู่ระบบในหน้าของแอพลิเคชันโดยตรงจากเซิร์ฟเวอร์ app http://app-server:8181/jellyfishเป็น หน้าจะให้บริการโดย Jetty instance ที่ทำงานภายใน Karaf แน่นอนว่าพฤติกรรมนี้มักจะถูกปิดกั้นโดยไฟร์วอลล์สำหรับทุกอย่างยกเว้นพร็อกซีเซิร์ฟเวอร์ย้อนกลับ เมื่อปิดไฟร์วอลล์หากคุณกด URL นี้ Jetty จะโหลดหน้าเข้าสู่ระบบ แถบที่อยู่ของเบราว์เซอร์เปลี่ยนไปอย่างถูกต้องhttp://app-server:8181/jellyfish/login?0และทุกอย่างทำงานได้ สิ่งที่ฉันต้องการคือhttp://web-server(เช่นจากรูท) เพื่อแม็พกับ Jetty บนเซิร์ฟเวอร์แอปด้วยชื่อของแอพ ( jellyfish) ที่ถูกระงับ เช่นเบราว์เซอร์จะเปลี่ยนไปแสดงhttp://web-server/login?0ในแถบที่อยู่และ URL และเนื้อหาที่ตามมาทั้งหมดจะแสดงพร้อมกับโดเมนของเว็บเซิร์ฟเวอร์และไม่มีjellyfishความยุ่งเหยิง ฉันสามารถให้ Apache ทำงานเป็น reverse proxy อย่างง่ายโดยใช้ config (ตัวอย่าง): - …

1
ข้อผิดพลาด httpd ของ Apache“ proxy: ap_get_scoreboard_lb” พร้อมด้วย ProxyPass
ฉันตั้งค่า apache เป็น proxy สำหรับ tomcat แต่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันกำหนดเป้าหมายหน้า บางครั้งฉันได้รับหน้าว่างหรือ 503: [ข้อผิดพลาด] [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(2) failed in child 29611 for worker proxy:reverse [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(1) failed in child 29611 for worker https://localhost:8443/ [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(0) failed in …

2
Reverse proxy สำหรับไดเรกทอรีย่อยใน nginx
ฉันต้องการตั้งค่า Reverse proxy ใน VPS ของฉันสำหรับแอพ Heroku ของฉัน ( http://lovemaple.heroku.com ) ดังนั้นหากฉันเข้าชมmysite.com/blogฉันจะได้รับเนื้อหาในhttp://lovemaple.heroku.com ผมทำตามคำแนะนำบนวิกิพีเดียอาปาเช่ location /couchdb { rewrite /couchdb/(.*) /$1 break; proxy_pass http://localhost:5984; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ฉันเปลี่ยนให้เหมาะกับสถานการณ์ของฉัน: location /blog { rewrite /blog/(.*) /$1 break; proxy_pass http://lovemaple.heroku.com; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } …

4
กำหนดค่า IIS 7 Reverse Proxy เพื่อเชื่อมต่อกับ TeamCity Tomcat
เรามีเว็บเซิร์ฟเวอร์IIS 7 ที่กำหนดค่าและต้องการสร้างreverse proxyสำหรับการติดตั้งTeamCityโดยใช้Tomcatบนเครื่องเดียวกัน เว็บไซต์ IIS เซิร์ฟเวอร์เป็นhttps://somesiteและฉันต้องการ TeamCity ที่จะปรากฏเป็นเปลี่ยนเส้นทางไปยังhttps://somesite/teamcityhttp://localhost:portnumber ฉันได้ติดตั้งส่วนขยาย Rewrite IIS URLและApplication Request Routingเพื่อลองและติดตั้ง reverse proxy แต่ไม่สามารถทำงานได้ คำตอบที่ใกล้เคียงที่สุดที่ฉันพบคือคำถาม StackOverflow เก่า: /programming/331755/how-do-i-setup-teamcity-for-public-access-over-https ซึ่งน่าเสียดายที่ไม่มีการทำงานใด ๆ ตัวอย่าง. ฉันค้นหาค่อนข้างน้อย แต่ดูเหมือนจะไม่พบตัวอย่างที่เกี่ยวข้อง ความช่วยเหลือใด ๆ ที่เป็นที่นิยม!

2
การกำหนดค่าพร็อกซีย้อนกลับ nginx บางรายการหยุดทำงานวันละครั้ง
ฉันมีพร็อกซีย้อนกลับ nginx ซึ่งพร็อกซีร้องขอจากภายนอก amazon ELB ไปยัง ELB ภายใน ฉันมีแบ็กเอนด์อินสแตนซ์ 6 ที่จัดการการร้องขอ การกำหนดค่าที่เปิดใช้งานไซต์จะมีลักษณะเช่นนี้ แต่มีหมายเลขพอร์ตที่แตกต่างกันและ proxy_pass ทุกอย่างอื่นเหมือนกัน: server { listen 3000; location / { proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000; include /etc/nginx/proxy.conf; } } ทุกๆหนึ่งชั่วโมงการกำหนดค่าจะหยุดทำงานทุก ๆ 24 ชั่วโมง ผู้รับมอบฉันทะอื่น ๆ ทั้งหมดทำงานได้ดี หากฉันรีสตาร์ท nginx การกำหนดค่าทั้งหมดจะทำงานอีกครั้ง ไม่มีสิ่งใดใน error.log ไม่มีอะไรแปลกในบันทึกการเข้าถึง syslog หรือ dmesg สิ่งนี้เป็นที่รู้จักหรือไม่? ฉันทำสิ่งผิดปกติกับการกำหนดค่าพร็อกซีของฉันหรือไม่ มีบันทึกอื่น ๆ ที่ฉันสามารถดูได้หรือไม่

3
ในพร็อกซีย้อนกลับ nginx จะตั้งค่าการตั้งค่าสถานะที่ปลอดภัยสำหรับคุกกี้ได้อย่างไร
ฉันใช้ nginx เป็น reverse proxy เพื่อให้บริการเว็บไซต์ https เท่านั้น ดังนั้นฉันต้องการคุกกี้สำหรับไซต์นี้ถูกตั้งค่าสถานะว่าปลอดภัย แต่เซิร์ฟเวอร์ส่วนหลังเป็น http หนึ่งดังนั้นมันจะไม่ตั้งค่าสถานะความปลอดภัยเป็นคุกกี้ ฉันจะแก้ไขส่วนหัว Set-Cookie เพื่อตอบสนองเพื่อเพิ่มการตั้งค่าสถานะที่ปลอดภัยได้อย่างไร

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