คำถามติดแท็ก proxypass

ProxyPass ใน Apache และ proxy_pass ใน nginx เป็นคำสั่งที่ใช้ในการระบุว่าแบ็กเอนด์หรือเซิร์ฟเวอร์ระยะไกลใดควรประมวลผลคำขอ

4
วิธีลบพา ธ ด้วย nginx proxy_pass
ฉันมีการเรียกใช้เว็บแอพลิเคชันที่http://example.com/และต้องการที่จะ "ติด" http://example.com/enโปรแกรมประยุกต์อื่นบนเซิร์ฟเวอร์ที่แยก เซิร์ฟเวอร์อัปสตรีมและproxy_passดูเหมือนจะใช้งานได้ แต่มีปัญหาเดียว: upstream luscious { server lixxxx.members.linode.com:9001; } server { root /var/www/example.com/current/public/; server_name example.com; location /en { proxy_pass http://luscious; } } เมื่อเปิดexample.com/enแอปพลิเคชันอัปสตรีมของฉันจะกลับ404 not found /enมา /enนี้ทำให้รู้สึกเป็นต้นน้ำไม่ได้มีเส้นทาง เป็นproxy_pathทางออกที่เหมาะสม? ฉันควรเขียนใหม่ "upstream" เพื่อฟัง/enแทนหรือไม่เนื่องจากเป็นเส้นทางของรูท หรือมีคำสั่งที่อนุญาตให้ฉันเขียนเส้นทางที่ส่งผ่านไปยังต้นน้ำหรือไม่
77 nginx  path  proxypass 

2
Apache ProxyPass พร้อม SSL
ฉันต้องการพร็อกซีคำขอจากไซต์ SSL ผ่านไซต์ที่ไม่ใช่ SSL Apache httpd.conf ของฉันมีลักษณะเช่นนี้: <VirtualHost 1.2.3.4:80> ServerName foo.com ProxyPass / https://bar.com/ </VirtualHost> ดังนั้นเมื่อฉันเยี่ยมชมhttp://foo.comฉันคาดหวังว่า apache จะส่งคำขอไปที่https://bar.comและส่งหน้าที่ได้รับมา แต่ฉันได้รับข้อผิดพลาด 500 และในบันทึกข้อผิดพลาดฉันเห็น: [error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com) สันนิษฐานว่าฉันไม่มีคำสั่งที่นี่ มันจะเป็นแบบไหน? ไม่ต้องกังวลเรื่องความปลอดภัย ฉันเข้าใจความเสี่ยงอย่างเต็มที่

2
regex ตำแหน่ง Nginx ไม่สามารถใช้งานได้กับการผ่านพรอกซี
ฉันกำลังพยายามทำให้คำสั่งตำแหน่ง 2 ตำแหน่งเหล่านี้ทำงานใน Nginx แต่ฉันได้รับข้อผิดพลาดกลับมาเมื่อทำการบูท Nginx location ~ ^/smx/(test|production) { proxy_pass http://localhost:8181/cxf; } location ~ ^/es/(test|production) { proxy_pass http://localhost:9200/; } นี่เป็นข้อผิดพลาดที่ฉันได้รับ: nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block มันฟังดูคุ้นหูกับทุกคนไหม? สิ่งที่ฉันหายไปที่นี่
43 nginx  proxy  regex  proxypass 

4
กำหนดค่า nginx สำหรับ jboss / tomcat
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา เพื่อที่จะผ่านการเข้าชม JBoss / TomCat พอร์ต 80 ใช้ Apache mod_jkเราใช้ในการติดตั้งและการกำหนดค่า มีเทียบเท่าสำหรับ nginx? โดยทั่วไปต้องการให้ทราฟฟิกพอร์ต 80 ทั้งหมดถูกส่งไปยัง jboss

2
บัตรผ่านไม่ทำงาน
ฉันพยายามให้ ProxyPass ทำงานกับการติดตั้ง OpenSUSE 13.1 ของฉัน ฉันเหนื่อย: a2enmod proxy a2enmod proxy_http a2enmod proxy_connect systemctl restart apache2 systemctl reload apache2 (ชุดคำสั่งทั้งหมดไม่มีประโยชน์) ฉันยังคงได้รับข้อผิดพลาดเดียวกันซ้ำแล้วซ้ำอีก: SERVER:/etc/apache2 # apache2ctl start -f /etc/apache2/httpd-proxy.conf AH00526: Syntax error on line 4 of /etc/apache2/httpd-proxy.conf: Invalid command 'ProxyPass', perhaps misspelled or defined by a module not included in the server …

3
โดเมนพร็อกซี Nginx ไปยังโดเมนอื่นที่ไม่มี URL การเปลี่ยนแปลง
คำถามของฉันอยู่ใน subj ฉันมีหนึ่งโดเมนนั่นคือการกำหนดค่าของ nginx: server { listen 80; server_name connect3.domain.ru www.connect3.domain.ru; access_log /var/log/nginx/connect3.domain.ru.access.log; error_log /var/log/nginx/connect3.domain.ru.error.log; root /home/httpd/vhosts/html; index index.html index.htm index.php; location ~* \.(avi|bin|bmp|css|dmg|doc|docx|dpkg|exe|flv|gif|htm|html|ico|ics|img|jpeg|jpg|js|m2a|m2v|mov|mp3|mp4|mpeg|mpg|msi|pdf|pkg|png|pps|ppt|pptx|ps|rar|rss|rtf|swf|tif|tiff|txt|wmv|xhtml|xls|xml|zip)$ { root /home/httpd/vhosts/html; access_log off; expires 1d; } location ~ /\.(git|ht|svn) { deny all; } location / { #rewrite ^ http://connect2.domain.ru/; proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_hide_header …
18 nginx  proxypass 

2
คุณสามารถใช้ Redirect และ Proxypass ได้ในเวลาเดียวกัน
ฉันใช้ Apache 2.2.15 บน CentOS เพื่อให้ SSL สำหรับแอปพลิเคชัน TomCat ProxyPass / http://127.0.0.1:8090/ connectiontimeout=300 timeout=300 ProxyPassReverse / http://127.0.0.1:8090 มันใช้งานได้ดีและทุกอย่างยอดเยี่ยม อย่างไรก็ตามฉันต้องการเพิ่มบรรทัดต่อไปนี้: Redirect permanent /broken/page.html https://www.servername.com/correct/page.html ก่อนหน้าข้างต้นเพื่อจัดการข้อผิดพลาดในแอปพลิเคชัน TomCat อย่างไรก็ตามดูเหมือนว่าจะไม่ทำงานตามที่ฉันคาดหวัง เป็นไปได้ไหมที่จะใช้การเปลี่ยนเส้นทางด้วยวิธีนี้ ฉันไม่มีความสามารถในการแก้ไขแอปพลิเคชันโชคไม่ดี

4
ฉันจะกำหนดค่าเซิร์ฟเวอร์ HTTP Nginx proxy_pass Node.js ผ่านซ็อกเก็ต UNIX ได้อย่างไร
ฉันกำลังพยายามกำหนดค่าเซิร์ฟเวอร์ Nginx เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Node.js HTTP ผ่านซ็อกเก็ตโดเมน UNIX ไฟล์การกำหนดค่า Nginx: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (ตามhttp://wiki.nginx.org/HttpProxyModule#proxy_pass ) สคริปต์ Node.js: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); ตอนนี้เมื่อฉันพยายามโทร curl http://localhost/ ฉันได้รับหน้าข้อผิดพลาด 502 Bad Gateway เป็นแบบม้วนเท่านั้นและไม่มีสิ่งใดในกระบวนการ Node.js ฉันกำลังทำอะไรผิดหรือเปล่า? แก้ไข: หลังจากลองวิธีแก้ปัญหาของ quanta ความผิดพลาดจะต้องเกี่ยวข้องกับการกำหนดค่า …

1
ProxyPass: เปลี่ยนเส้นทางไดเรกทอรี URL ไปยังพอร์ตที่ไม่ได้มาตรฐาน
ฉันค้นหา Google และไม่ประสบความสำเร็จในการหาคำตอบ ฉันใช้เซิร์ฟเวอร์บน Ubuntu และมีโปรแกรมที่ติดตั้งซึ่งใช้พอร์ตที่ไม่ได้มาตรฐานต่างๆ แต่ละอันใช้พอร์ตที่แตกต่างกันในกรณีของฉันคือ 9090, 9091, 9092, 9093 และ 9094 ฉันตั้งเซิร์ฟเวอร์ apache และมีชื่อโดเมนที่สามารถเข้าถึงเซิร์ฟเวอร์ของฉันแทนที่จะต้องพิมพ์ที่อยู่ IP ของฉัน สิ่งที่ฉันกำลังมองหาคือวิธีการสร้างไดเรกทอรีที่สามารถชี้ไปยังพอร์ตต่างๆที่ฉันได้ระบุไว้ ฉันต้องการสิ่งที่ชอบ https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3 พอร์ตบางตัวใช้งานผ่าน SSL บางตัวไม่ใช่ฉันเพิ่งวางตามลำดับ (9090-9094) เพื่อความสะดวกในการใช้งานในส่วนของฉัน ฉันต้องการให้ / app1 ชี้ไปที่พอร์ต SSL 9090, / app2 เพื่อชี้ไปที่พอร์ต SSL 9091 และ / app3 เพื่อชี้ไปที่พอร์ตที่ไม่ใช่ SSL 9092 มีวิธีง่าย ๆ ใช่ไหม ฉันได้ลองเพิ่ม ProxyPass …

3
ช่วยฉันเข้าใจวิธีใช้ ProxyPass
อัปเดต: ฉันเพิ่มคำถามที่แก้ไขแล้วหลังจากเล่นไปพร้อมคำตอบสองข้อด้านล่าง สวัสดี, หากคุณกำลังอ่านสิ่งนี้คุณอาจคุ้นเคยกับ mod_proxy ของ Apache และฟังก์ชั่น ProxyPass เช่นเดียวกับคนอื่น ๆ ฉันมีปัญหาในการมีแอปพลิเคชันที่ฉันสามารถเข้าถึงได้จากนอกเครือข่ายภายในของเรา แต่แอปพลิเคชันนั้นเข้าถึงแอพภายในเครื่องอื่นบนเครื่องที่แตกต่างกันและเมื่อคุณเข้าใช้การตั้งค่านี้ ดังนั้นการตั้งค่าของฉันง่ายมากฉันมี: Machine # 1 เปิดใช้งานการเข้าถึงระยะไกลฉันเข้าถึงผ่านชื่อโฮสต์และคายแอปพลิเคชัน PHP ที่ทำงานอยู่ Machine # 2 เป็นแอปพลิเคชั่นใหม่ที่ใช้ Django โดยใช้แบ็กเอนด์ที่แตกต่างกันโดยสิ้นเชิง (แม้จะตรวจสอบความถูกต้อง) มันถูกโฮสต์ไว้ในเครื่องแยกต่างหาก ในอินทราเน็ตของเราเราเข้าถึงผ่านชื่อโฮสต์ที่มีชื่ออย่างง่ายซึ่งโดยทั่วไปจะเชื่อมโยงกับ ip 192.168.0.101 ภายใน ฉันได้ลองเล่นกับ ProxyPass เพื่อตั้งค่าตัวอย่างเช่นการส่งผ่าน / ใหม่จะส่งไปยังแอปพลิเคชันใหม่: ProxyPass / ใหม่http://192.168.0.101/ ผลงานประเภทนี้จะได้รับการร้องขอไปยังแอปอื่น แต่หยุดเพราะแอพ Django ของฉันต้องการเปลี่ยนเส้นทางไปที่ / auth / login / ซึ่งมันจำไม่ได้ทันที …

1
วิธีป้องกัน nginx จากไดเรกทอรีย่อยที่ระบุเฉพาะของพร็อกซีย้อนกลับ
ใน Apache คุณสามารถใช้ ProxyPass ได้ทุกอย่างยกเว้นไดเรกทอรีย่อยอย่างน้อยหนึ่งไดเรกทอรี (ด้วย "!") ProxyPass /subdir ! ProxyPass / http://localhost:9999/ Nginx เทียบเท่าคืออะไร? เห็นได้ชัดว่าการเดาครั้งแรกของฉันไม่ทำงาน: location /subdir { root /var/www/site/subdir; } location / { proxy_pass http://localhost:9999/ ; }

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.