ฉันสามารถมีเซิร์ฟเวอร์ apache หนึ่งเซิร์ฟเวอร์จากเครื่องไม่กี่เครื่องได้หรือไม่


2

การตั้งค่าบ้านของฉันเป็นดังนี้:

อินเทอร์เน็ต - & gt; เราเตอร์ pfsense - & gt; เครื่อง Windows 7 หลายเครื่อง                               Ubuntu NAS พร้อม Webmin

ฉันมีการตั้งค่า DNS แบบไดนามิกดังนั้นฉันจึงมีการอัพเดต www.domainname.com ด้วยกล่อง pfsense WAN

ตัวอย่างเช่นการมี java VNC web-server บน 2 เครื่องใน windows 7 ฉันสามารถตั้งค่ามันได้เช่น:

www.domain.com-5800 เป็น PC1 www.domain.com-5901 คือ PC2

สิ่งที่ฉันอยากรู้คือถ้าเป็นไปได้ที่จะติดตั้ง apache บนกล่อง ubuntu ส่งต่อพอร์ต 80 ปริมาณการใช้และตั้งค่าให้มีเช่น

www.domain.com/PC1 เปลี่ยนเส้นทางไปยัง PC1 java vnc เซิร์ฟเวอร์บนพอร์ตเริ่มต้น www.domain.com/PC2 เปลี่ยนเส้นทางไปยัง PC2 vnc เป็นต้น

หากเป็นไปได้ตัวชี้บางอย่างจะได้รับการชื่นชม

คำตอบ:


2

ลองเอ็นจิ้น apache rewrite สิ่งที่ต้องการ:

<VirtualHost ubuntu:80>
    ServerName domainname.com
    RewriteCond %{REQUEST_URI}      ^/PC1
    RewriteRule ^/(.*)$             http://pc1:5800/$1 [R=permanent,L]
    RewriteCond %{REQUEST_URI}      ^/PC2
    RewriteRule ^/(.*)$             http://pc1:5901/$1 [R=permanent,L]
</VirtualHost>

ปรับปรุง ฉันเพิ่งรู้ว่าคุณอาจมีพีซีสองเครื่องนี้ไม่พร้อมใช้งานจากอินเทอร์เน็ตเช่นเราเตอร์ที่ไม่มี IP ภายนอก ในกรณีที่คุณต้องแก้ไขข้างต้นดังนั้นมันจะเปลี่ยนเส้นทางการร้องขอไปยังเครื่องอูบุนตูเดียวกันบนพอร์ตที่แตกต่างกันและจากนั้นจะส่งผ่านพร็อกซีไปยังเซิร์ฟเวอร์ windows ในเครื่อง:

<VirtualHost ubuntu:80>
    ServerName domainname.com
    RewriteCond %{REQUEST_URI}      ^/PC1
    RewriteRule ^/(.*)$             http://ubuntu:5800/$1 [R=permanent,L]
    RewriteCond %{REQUEST_URI}      ^/PC2
    RewriteRule ^/(.*)$             http://ubuntu:5901/$1 [R=permanent,L]
</VirtualHost>

<VirtualHost ubuntu:5800>
    ServerName domainname.com
    ProxyPass / http://pc1:5800/
    ProxyPassReverse / http://pc1:5800/
</VirtualHost>

<VirtualHost ubuntu:5901>
    ServerName domainname.com
    ProxyPass / http://pc2:5901/
    ProxyPassReverse / http://pc2:5901/
</VirtualHost>

uff ... หวังว่านี่จะช่วย ... :)


ขอบคุณฉันจะลองเมื่อกลับถึงบ้าน หากพอร์ตเริ่มต้นสำหรับ vnc java viewer คือ 5800 ฉันสามารถตั้งค่าเซิร์ฟเวอร์เสมือน ubuntu: 5800, ubuntu: 5801 และอื่น ๆ ที่ชี้ไปที่พอร์ต 5800 บนเครื่องที่เกี่ยวข้องหรือไม่

ถ้าปริมาณการใช้ http นั้นใช่ อีกทางหนึ่งคุณอาจต้องการลองใช้ iptables เพื่อส่งต่อให้คุณ แต่มันอาจจะยุ่งหน่อย ....

ทำไมไม่เพียงแค่ ProxyPass /PC1 http://pc1:5901/ และ ProxyPAss /PC2 http://pc2:5901/ (ด้วย ProxyPassReverse สำหรับทั้งคู่)? ทำไมถึงทำงานพิเศษกับ RewriteRule S? ดูคำตอบของฉัน
Bill Weiss

hmm .. จุดดี .. :) ดีนี้ช่วยให้คุณมีสองตัวเลือก: ใช้โดเมน / pc1 หรือโดเมน: ความคิด 5800 ... แต่คุณขวาตัวเลือกของคุณง่ายขึ้น ...

1

ลองสิ่งนี้:

<VirtualHost ubuntu:80>
  ServerName domainname.com
  ProxyPass /PC1 http://pc1:5901/
  ProxyPassReverse /PC1 http://pc1:5901/
  ProxyPass /PC2 http://pc2:5901/
  ProxyPassReverse /PC2 http://pc2:5901/
</VirtualHost>

ง่ายกว่าล้อเล่นด้วย RewriteRule

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