2011-12-09 33 views
7

tôi có 2 ứng dụng được lưu trữ trên một tomcat apache duy nhất trên cổng 8080 >Subdomain Proxy vượt qua tất cả trỏ đến server đơn

  • http://mydomain.com:8080/application1
  • http://mydomain.com:8080/application2

Tôi muốn để chạy proxy apache trước BOTH của họ với hành vi sau đây >

  • http://mydomain.com/* (apache2) -> http://mydomain.com:8080/application1/* (tomcat)
  • http://subdomain.mydomain.com/* (apache2) -> http://mydomain.com:8080/application2/* (tomcat)

Điều tốt nhất tôi đã có ngay bây giờ là 2 máy với IP khác nhau và định tuyến tên miền và tên miền phụ tương ứng.

Lý tưởng nhất là tôi muốn proxy apache và 2 ứng dụng được trên máy CÙNG ...

thể bất cứ ai có kỹ năng DEVOps kick ass hỗ trợ?

Trả lời

18

Ngoài câu trả lời @Jon Lin, hãy cân nhắc việc sử dụng ProxyPassReverse cũng như trong trường hợp ứng dụng của bạn thực hiện bất kỳ chuyển hướng nào. Nó làm cho Apache đúng URL trên phản hồi (thêm về ProxyPassReverse). Nó sẽ trông giống như vậy:

<VirtualHost subdomain.mydomain.com:80> 
    ProxyPass/http://localhost:8080/application1/ 
    ProxyPassReverse/http://localhost:8080/application1/ 
</VirtualHost> 

<VirtualHost mydomain.com:80> 
    ProxyPass/http://localhost:8080/application1/ 
    ProxyPassReverse/http://localhost:8080/application1/ 
</VirtualHost> 

Tôi hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn các bạn ... điều đó hữu ích – alwinc

+0

có hoạt động không nếu chúng tôi giữ *: 80 nhưng thêm tên miền phụ cụ thể trước quy tắc *? – user3779430

+0

Thêm tên miền phụ trước khi quy tắc vi phạm cho tôi – puk

0

Trong cấu hình virtualhost cho mydomain.com (apache), bạn cần

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1 

Trong cấu hình virtualhost cho subdomain.mydomain.com (apache), bạn nede

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1 

Cả hai tệp cấu hình phải nằm trên cùng một máy và thậm chí là cùng một tệp. Xem VirtualHost Examples để biết một số ví dụ về cách thiết lập này.

Các vấn đề liên quan