Apache反向代理Nextcloud实战

3 篇文章 0 订阅

前言

自更换移动宽带,无公网IP苦不堪言,还好有云服务器,寻思借用云服务器的公网IP完成云服务器到家里NUC主机上的Nextcloud安装的访问。

这里,笔者假定读者已经正确安装Nextcloud,且启用了SSL证书,系统为RHEL,网页服务器为Apache。

SSL证书复制

因涉及到跨域访问,最好是把证书统一一下,拷贝Nextcloud的证书到你方便的位置,并在云服务器上的/etc/httpd/conf.d/ssl.conf最后面起一个VirtualHost

<VirtualHost *:443>
ServerName 你的域名
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateFile 公钥证书
SSLCertificateKeyFile 私钥
SSLCertificateChainFile 钥匙串
ProxyRequests off
ProxyPass / https://nextcloud安装地址/
ProxyPassReverse / https://nextcloud安装地址/
</VirtualHost>

请注意,以上只代理https请求,如果你用的是http,或者希望把http的都重定向到https,那么请在云服务器上的/etc/httpd/conf/httpd.conf最后面再起一个VirtualHost

<VirtualHost *:80>
ServerName 你的域名
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
</VirtualHost>

白名单

修改你的Nextcloud配置文件,我们需要把云服务器和域名做个白名单,它位于/var/www/html/nextcloud/config/config.php(因个人而异)

第一件事,给array加上我们的域名或者你的云服务器IP

array (
    0 => '原来的地址',
    1 => '新地址',
  ),

第二件事,添加链接重命名规则

'overwrite.cli.url' => 'https://新地址/',
  'overwritehost'     => '新域名或新IP',
  'overwriteprotocol' => 'https',

保存,重启Apache,理论上你应该能正常通过网页登录NextCloud,然而这还没有完。

如果你要添加手机应用或者使用WebDAV,那么现在应该是会卡死在登录授权的循环。

客户端集成/WebDAV

修改ssl.conf和httpd.conf,在上文写的VirtualHost里写如下的重定向规则

RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]

保存,重启Apache,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值