是否可以在已经配置了 Apache2 并运行 VirtualHosts 的服务器上安装和使用 Dokku?

是否可以在已经配置了 Apache2 并运行 VirtualHosts 的服务器上安装和使用 Dokku?

发布日期堆栈溢出,但意识到它可能属于这里:

我有一台 Ubuntu 服务器(现在正在升级到 22.04),它运行着几个带有 php 应用程序的虚拟主机。我想在上面运行几个节点应用程序(我正在将旧的 php 应用程序转换为节点应用程序),我想使用 dokku 将它们彼此分开。有没有办法让 Apache(及其虚拟主机)和 Dokku 在同一台服务器上运行,并且都响应端口 80?我在想,也许在 80 以外的端口上运行 Dokku 并在 apache 上使用反向代理可能会有效,但我不确定,也没有这方面的经验。

答案1

嗨。

您已经回答了自己的问题。端口已绑定到服务,因此您无法在其他服务中重复使用它们。

我建议:将 dokku 设置为在不同端口上运行的 docker 容器(如文档中的示例:https://dokku.com/docs/getting-started/install/docker/

之后为特定域创建一个 virtualHosts 条目或重用现有条目以将您的请求 ProxyPass 传递到 dokku 的本地 docker 容器。

不要忘记为 proxyPass 启用 apche 模块:

  • mod_proxy
  • mod_proxy_http

对于 http 虚拟主机:

ProxyRequests Off
<Location "/">
    ProxyPass "http://127.0.0.1:8080/"
    ProxyPassReverse "http://127.0.0.1:8080/"
</Location>

对于 https 虚拟主机:

ProxyRequests Off
<Location "/">
    SSLProxyEngine On
    ProxyPass "http://127.0.0.1:8443/"
    ProxyPassReverse "http://127.0.0.1:8443/"
</Location>

对于 SSH,您可以使用端口 3022,如安装文档中所述。

或者

就像我在 GitLab 安装上所做的那样,我将操作系统的正常 SSH 端口重新配置为高端口号,并将端口 22 映射到 docker 容器。

相关内容