答案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 代理正常运行