Многие URL-адреса 404 при использовании mod_proxy [_html]

Что я хочу сделать

Сделайте так, чтобы все http://cloud.example.com/ отображались как http://webmail.example.com/cloud/

Как я пытался это сделать

<VirtualHost  *:80>

  ServerName webmail.example.com
  DocumentRoot /var/www/roundcubemail-1.1.4
  Loglevel debug
  ErrorLog /var/log/apache2/roundcube.error
  # %t  : Time 
  # %a  : client ip 
  # %f  : filename
  # %T  : processing time 
  # %s  : status
  # %>s : Final status
  LogFormat "%t %a %{Referer}i -> %U%q, matches %f, %s>%>s(served in %{ms}T µs)" custom
  # was "combined"
  CustomLog /var/log/apache2/roundcube.access custom     

  ProxyPass  "/cloud/" "http://cloud.example.com/"
  ProxyPassReverse "/cloud/" "http://cloud.example.com/"

  # The ProxyRequests directive should usually be set off when using ProxyPass.
  # src:https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass
  ProxyRequests off

  # https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypreservehost  
  # This option should normally be turned Off.
  ProxyPreserveHost off

</VirtualHost>

Журналы

[14/Jun/2016:13:42:37 +0100] 192.168.211.202 - -> /cloud/, matches proxy:http://cloud.example.com/, 200>200(served in 5 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/styles.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/header.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/mobile.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/icons.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/fonts.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
[14/Jun/2016:13:42:42 +0100] 192.168.211.202 - -> /core/css/apps.css?v=9a1b1350ff46cbc098bc6c7acca55c1c, matches /var/www/roundcubemail-1.1.4/core, 404>404(served in 0 µs)
...

Первая строка журнала показывает, что запрос пути "/ cloud /" успешно извлекает ресурс с проксированного веб-сайта, но все последующие ресурсы не извлекаются из облачный сервер, но с самого сервера веб-почты.

Как я могу об этом позаботиться?

У меня включен proxy_html.

root@messagerie[CHROOT][10.10.10.20] ~ # a2query -m
proxy (enabled by site administrator)
php5 (enabled by maintainer script)
setenvif (enabled by maintainer script)
ssl (enabled by site administrator)
deflate (enabled by maintainer script)
authn_core (enabled by maintainer script)
env (enabled by maintainer script)
mime (enabled by maintainer script)
auth_basic (enabled by maintainer script)
access_compat (enabled by maintainer script)
authz_core (enabled by maintainer script)
xml2enc (enabled by site administrator)
authz_host (enabled by maintainer script)
alias (enabled by maintainer script)
authz_user (enabled by maintainer script)
autoindex (enabled by maintainer script)
negotiation (enabled by maintainer script)
socache_shmcb (enabled by site administrator)
proxy_http (enabled by site administrator)
status (enabled by maintainer script)
proxy_html (enabled by site administrator)
filter (enabled by maintainer script)
authn_file (enabled by maintainer script)
dir (enabled by maintainer script)
mpm_prefork (enabled by maintainer script)
root@messagerie[CHROOT][10.10.10.20] ~ # 
0
задан 14 June 2016 в 16:33
1 ответ

Как было предложено @HBruijn, я добавил

  ProxyPass "/core/" "http://cloud.algerian-radio.dz/core/"
  ProxyPassReverse "/core/" "http://cloud.algerian-radio.dz/core/"

Но затем сервер получил запросы на /index.php/apps/files/, поэтому я добавил и это

  ProxyPass  "/index.php/apps/files/" "http://cloud.algerian-radio.dz/apps/file\
s/"
  ProxyPassReverse "/index.php/apps/files/" "http://cloud.algerian-radio.dz/app\
s/files/"

Избавился от всех ошибок 404, но все же не смог заставить owncloud работать.

http : //webmail.example.com/cloud перенаправляет на http://webmail.example.com/index.php/apps/files/ , который отображает эту приятную ошибку:

Fatal error: Class 'OCP\User' not found in /usr/local/nginx/html/owncloud/apps/files/index.php on line 33

EDIT : исправлено! , потребовалась некоторая дополнительная настройка со стороны owncloud, а именно trust_proxies и overwritewebroot .

0
ответ дан 5 December 2019 в 10:15

Теги

Похожие вопросы