Url rewriting 带url重写的HTTPS反向代理
我想在我的家庭服务器上安装Nextcloud。Nextcloud快照将始终将Nextcloud实例放在/,比方说。但我也想从我的服务器上为其他网页提供服务,所以我想将Nextcloud移至 这似乎可以为HTTP服务器使用带有url重写的反向代理完成,即,我在端口81处运行Nextcloud快照,反向代理透明地路由-> 但我不想将未加密的Nextcloud实例公开到internet。是否可以对HTTPS实例执行此URL重写?它需要代理读取HTTPS请求,但是透明的反向代理不应该能够解密通信Url rewriting 带url重写的HTTPS反向代理,url-rewriting,reverse-proxy,nextcloud,Url Rewriting,Reverse Proxy,Nextcloud,我想在我的家庭服务器上安装Nextcloud。Nextcloud快照将始终将Nextcloud实例放在/,比方说。但我也想从我的服务器上为其他网页提供服务,所以我想将Nextcloud移至 这似乎可以为HTTP服务器使用带有url重写的反向代理完成,即,我在端口81处运行Nextcloud快照,反向代理透明地路由-> 但我不想将未加密的Nextcloud实例公开到internet。是否可以对HTTPS实例执行此URL重写?它需要代理读取HTTPS请求,但是透明的反向代理不应该能够解密通信 当然,
当然,另一种选择是手动安装Nextcloud,但snap承诺由比我更了解这方面知识的人编写的更易于维护和配置,这一点很有吸引力。通过让反向代理终止SSL连接并将未加密的数据转发到Nextcloud服务器,这一点得到了解决。然后代理可以重写URL。还必须告诉Nextcloud它位于url重写反向代理的后面 对于nextcloud snap,可以使用以下命令(从): 或者您可以直接在Nextcloud
config.php
中编辑这些值
上面的链接没有解释Apache设置,但以下内容可以使用:
ProxyPass "/nextcloud" "http://127.0.0.1:8000"
ProxyPassReverse "/nextcloud" "http://127.0.0.1:8000"
ProxyPass "/" "http://127.0.0.1:8001/"
ProxyPassReverse "/" "http://127.0.0.1:8001/"
其中端口8001是静态/其他文件的Web服务器。
出于某些我不理解的原因,尾部斜杠很重要:如果我添加了尾部斜杠:
ProxyPass "/nextcloud" "http://127.0.0.1:8000/"
然后我被重定向,但Nextcloud无法正常工作,如果我将其从静态重定向中删除:
ProxyPass "/" "http://127.0.0.1:8001"
然后myserver.ddns.com/foo
在内部被重定向到http://127.0.0.1:8001foo
这显然不起作用
ProxyPass "/" "http://127.0.0.1:8001"