2013-04-25 21 views
12

Hãy nói rằng tôi có cấu hình như sau:ProxyPass và DocumentRoot trên một miền

<VirtualHost domain.com> 
    # Server names, admins, logs etc... 

    ProxyVia On 
    ProxyRequests Off 
    <Location "/"> 
     ProxyPass http://localhost:8080/tomcat-webapp/ 
     ProxyPassReverse http://localhost:8080/tomcat-webapp/ 
     Order allow,deny 
     Allow from all 
    </Location> 
</VirtualHost> 

Bây giờ, tôi muốn địa chỉ domain.com/forum để hiển thị conent của diễn đàn MyBB của tôi, file nào bên trong /var/www/forum thư mục. Làm thế nào để thực hiện điều này?

Trả lời

26

Thực ra, tôi giải quyết vấn đề này với đoạn mã sau:

ProxyPass /forum ! 
ProxyPass/http://localhost:8080/tomcat-webapp/ 
ProxyPassReverse/http://localhost:8080/tomcat-webapp/ 
Alias /forum /var/www/forum 
+0

Bất kỳ ý tưởng nào về câu hỏi này? Cảm ơn! http://stackoverflow.com/questions/31271434/apache-mod-proxy-with-tomcat-and-svn –

3

Điều bạn đang đề xuất là sử dụng mod_rewrite để thực hiện ProxyPass thay vì lệnh ProxyPass/ProxyPassReverse.

Hãy thử một cái gì đó như:

RewriteRule ^/forum - [L] 
RewriteRule ^/(.*) http://localhost:8080/tomcat-webapp/$1 [P,L] 
ProxyPassReverse/ http://localhost:8080/tomcat-webapp/ 
+0

Điều này yêu cầu ‘Bí danh/diễn đàn/var/www/diễn đàn' được đặt trước để quy tắc viết lại đi bất cứ đâu. –

0

tôi sử dụng:

<VirtualHost *:80> 
#other irrelevant configs here 
ProxyPass /forum http://localhost:8080/myBB 
ProxyPassReverse /forum http://localhost:8080/myBB 
ProxyPass/http://localhost:8081/tomcat-app 
ProxyPassReverse/http://localhost:8081/tomcat-app 
</VirtualHost> 

Bạn không cần phải nói "tomcat-app" nếu ứng dụng tomcat của bạn là ứng dụng gốc.

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