![Apache2 将 mysite.com/owncloud 重定向到包含数据的另一个内部服务器](https://linux22.com/image/1142633/Apache2%20%E5%B0%86%20mysite.com%2Fowncloud%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%8C%85%E5%90%AB%E6%95%B0%E6%8D%AE%E7%9A%84%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%86%85%E9%83%A8%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
答案1
免责声明
我尝试了多种 OwnCloud 解决方案,但都无法通过 ProxyPass 阶段。显然,有很多人想使用 Apache 作为反向代理,但遇到了 OwnCloud 的 .htaccess 和配置问题。
我无论如何也找不到解决办法,因为绝大多数反向代理服务器都是 NGINX。
我在这里发布的内容仅足以让 Apache 服务器代理 OwnCloud 服务器。存在错误和配置问题,但此后的任何问题都必须在 OwnCloud 配置中解决,或者请教更熟悉 OwnCloud 工作原理的人。
抱歉,我无法提供更多信息。这有点超出我的范围,因为我不完全了解 OwnCloud 的工作原理及其反向代理相关的问题。
脚步
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install apache2
sudo a2enmod proxy proxy_html proxy_http proxy_ajp deflate headers proxy_balancer proxy_connect rewrite
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/
- CTRL+ X,Y,Enter
sudo a2enconf owncloud
sudo systemctl reload apache2
如果您浏览到http://192.168.20.100/owncloud您现在应该可以看到您的 OwnCloud 安装。
其余配置现已完成/var/www/owncloud/config/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 代理正常运行