Сегодня у меня есть два сервера Apache, сервер A (192.168.0.5), сервер B (192.168.0.10), оба работают на одном 80-м порте.
Фактический запрос поступает с сервера a, и с моей конфигурацией он передается на сервер b (с использованием mod_proxy), это работает.
Конфигурация сервера A:
NameVirtualHost *
<VirtualHost *>
ServerName owncloud.mydomain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.0.10:80/
ProxyPassReverse / http://192.168.0.10:80/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
когда я обращаюсь к mycloud.mydomain.com, запрос получает доступ с помощью СЕРВЕРА A, но с прокси-сервером он «проксирует» на сервер B, а затем я вижу контент на сервере B, это здорово, но теперь мой контент находится на mycloud.mydomain.com / owncloud, я не знаю, как этот URL можно проксировать и перенаправлять, используя только mycloud.mydomain.com.
Это другая конфигурация, которую я использую на своем сервере A для использования mod_proxy
RewriteCond %{HTTP_HOST} ^mycloud\.mydomain\.com$ [NC]
RewriteRule ^/(.*)$ http://mycloud.mydomain.com/$1 [P]
Я хочу, чтобы при доступе пользователя к mycloud.mydomain.com перенаправление mod_proxy и прокси на mycloud.mydomain.com/owncloud.
Как я могу это сделать?
ОТредактировано мной
Моя новая конфигурация:
RewriteCond %{HTTP_HOST} ^owncloud\.mydomain\.com$ [NC]
RewriteRule ^/(.*)$ http://192.168.0.10:80/owncloud/$1 [P,L]
ProxyPassReverse / http://192.168.0.10:80/owncloud/
Я перенаправляюсь на owncloud.mydomain.com, но страницы плохо отображаются (например, некоторые CSS не загружаются), но если я просто добавлю / owncloud, все будет работать, но я не хочу, чтобы пользователь добавил / owncloud. Это не работает должным образом, я что-то делаю не так?
Слегка измените проксирование, используя следующие строки:
RewriteRule ^/(.*)$ http:///192.168.0.10:80/owncloud/$1 [P,L]
ProxyPassReverse / http://192.168.0.10:80/owncloud/
Эти строки должны заменить эти строки:
ProxyPass / http://192.168.0.10:80/
ProxyPassReverse / http://192.168.0.10:80/
Вышеупомянутые строки говорят, что соединения входят в /
перейти к http:///192.168.0.10:80/owncloud/
(RewriteRule) и что соединения возвращаются с прокси-сервера /owncloud/
переписать на /
(ProxyPassReverse).
Я работаю над той же проблемой. Я думаю, что конфигурация apache правильная, но вам нужны некоторые изменения в config.php owncloud, например
'overwritehost' => 'apacheVhost.domain.com',