Apache2 将 mysite.com/owncloud 重定向到包含数据的另一个内部服务器

Apache2 将 mysite.com/owncloud 重定向到包含数据的另一个内部服务器

我想在另一台服务器上使用 OwnCloud 创建一个网站。网站托管在 192.168.0.100 上,但 OwnCloud 托管在 192.168.0.200 上。

我该如何设置,以便无论身在何处,我都可以通过类似 owncloud.mysite.com 或 mysite.com/owncloud 的链接使用 OwnCloud?是否可以创建此功能?如何创建?我尝试使用代理密码,但没有用(我想我做错了什么)。子域未创建。

这就是我要的:

那

答案1

免责声明

我尝试了多种 OwnCloud 解决方案,但都无法通过 ProxyPass 阶段。显然,有很多人想使用 Apache 作为反向代理,但遇到了 OwnCloud 的 .htaccess 和配置问题。

我无论如何也找不到解决办法,因为绝大多数反向代理服务器都是 NGINX。

我在这里发布的内容仅足以让 Apache 服务器代理 OwnCloud 服务器。存在错误和配置问题,但此后的任何问题都必须在 OwnCloud 配置中解决,或者请教更熟悉 OwnCloud 工作原理的人。

抱歉,我无法提供更多信息。这有点超出我的范围,因为我不完全了解 OwnCloud 的工作原理及其反向代理相关的问题。

脚步

  1. sudo apt-get update
  2. sudo apt-get -y upgrade
  3. sudo apt-get -y install apache2
  4. sudo a2enmod proxy proxy_html proxy_http proxy_ajp deflate headers proxy_balancer proxy_connect rewrite
  5. sudo nano /etc/apache2/conf-available/owncloud.conf

粘贴:

Alias /owncloud "http://192.168.1.200:80/owncloud"
  ProxyPreserveHost On
  ProxyPass /owncloud http://192.168.20.200:80/owncloud/
  ProxyPassReverse /owncloud http://192.168.20.200:80/owncloud/
  1. CTRL+ XYEnter
  2. sudo a2enconf owncloud
  3. sudo systemctl reload apache2

如果您浏览到http://192.168.20.100/owncloud您现在应该可以看到您的 OwnCloud 安装。

其余配置现已完成/var/www/owncloud/config/config.php

参考资料

Config.php 参数

反向代理配置

答案2

我通过代理 URL(下面为 example.com)到 192.168.0.x 的另一个盒子上的 LAN IP 来解决这个问题

在 Apache 反向代理上将以下内容添加到 SSL 配置中:

rewriteEngine on
RewriteRule ^/owncloud$ https://example.com/owncloud/ [R=301,L]
RewriteCond %{HTTP_REFERER} "https://example.com/owncloud/"
RewriteCond %{REQUEST_URI} !^/owncloud
RewriteRule ^(.*)$ /owncloud$1 [R=301,L]
<Location /owncloud/>
    ProxyPass "http://192.168.0.x/owncloud/" connectiontimeout=5 timeout=30 keepalive=on
    ProxyPassReverse "http://192.168.0.x/owncloud/"
</Location>

这在很大程度上有效,但导致登录页面出现错误。

通过在 owncloud 配置中添加以下内容可以解决这个问题:

'overwriteprotocol' => 'https',
'overwritehost' => 'example.com',

现在一切(包括 Owncloud 应用程序)都可以通过 Apache 代理正常运行

相关内容