我家里有 NAS 服务器,apache 2.4 在 443 上运行,SSL 在 ddns 域上正常。 在此服务器上,我还运行其他服务,例如 Nodejs 和 Python 中的 http。 我在专用网络上还有其他服务器以及其他服务,我还需要在 apache 上进行代理以利用 ssl 并减少暴露于互联网的端口数量。
首先,我尝试在子文件夹上使用 ProxyPass、ProxyPassReverse 来代理本地主机附加服务,由于资源问题而复制文件夹结构,但没有成功。尝试在没有它的情况下以斜杠 e 结尾...还尝试使用 htaccess 和 vhosts 也没有成功。我实现的最好的例子是 OpenWebUI,我得到了初始徽标代码,但没有显示徽标图像...我想我需要在 url 上进行一些字符串替换,因为 openwebui 在资源上没有相对 url。
我想如果我有子域名会更容易,但我实际的 ddns 提供商不允许这样做。实际上正在寻找一个允许在 ddns 连接中使用私有域的提供商。
示例: 10.0.0.100 - NAS 服务器
有人尝试过类似的情况并成功吗?如果是这样,能否通过一些可行的示例为我指明方向? 或者还有其他推荐吗?
蒂亚
JL
添加注释:
经过一番尝试,我在 openwebui 代理上取得了一些进展...现在我想我可以获得静态资源,初始化应用程序,但出现错误,该错误也没有以正确的方式运行,需要从后端开始...到目前为止我的此 apache 设置的conf是:
ProxyPass "/_app" "http://localhost:3033/_app"
ProxyPassReverse "/_app" "http://localhost:3033/_app/"
ProxyPass "/static" "http://localhost:3033/static"
ProxyPassReverse "/static" "http://localhost:3033/static/"
ProxyPass "/jl_ia" "http://localhost:3033/"
ProxyPassReverse "/jl_ia" "http://localhost:3033/"
现在我解决了子域名和proxypass,因为我找到了一个免费的ddns提供商,它允许子域名(xxx.yyy.domain.zzz),我可以在购买私有域名之前进行测试。 apache 上的虚拟主机配置之一的示例:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName zzz.xyz.domain.com
ProxyPass "/" "http://localhost:3033/"
ProxyPassReverse "/" "http://localhost:3033/"
SSLEngine On
SSLCertificateKeyFile /usr/builtin/etc/certificate/ssl/ssl.key
SSLCertificateFile /usr/builtin/etc/certificate/ssl/ssl.crt
</VirtualHost>
</IfModule>
这样就解决了 OpenWebUI 的资源 url 问题(我的主要尝试)和其他问题。
谢谢大家
JL