Hestia CP with Docker app

之前我写过一篇文章说我 遷移 Plesk 到 Hestia 经过一段时间的使用除了少了一些功能外整体还是很稳定实用的最近我在捣鼓一些 Docker 应用就发现 赫斯提亞 并不能像 那样直接从 UI 控制和管理 docker,當然,由於 赫斯提亞 本身轻量级的设计架构我们还是能够很容易让它实现 Docker App 反代的,當然了,它确实没办法管理 Docker 服務,你得自己登录服务器运行命令去启动

Docker App

这里就不做赘述了我们假设一个 App 开在了 8081 端口,已经能够通过 127.0.0.1:8081 進行 HTTP 訪問。

說實在的,其实这个方案支持任何需要本地反代的应用,比如 NodeJS本质上我们就是给 Hestia 的 Nginx的 模板添加一套反代模板再加载它

添加 Nginx 配置

Hestia 的 Nginx 把网站配置放在了这里 /等等/nginx的/CONF.ð/domains/plex.mydomain..CONF 但你不能直接修改它因为这个会被模板覆盖掉。當然,你也不能修改现有模板实现改配置一方面是因为这样会把所有站点都改了另一方面是一旦 Hestia 更新模板就被覆盖了所以我们需要单独创建一套模板由于我们要自定义端口到 8081 或者其他本地应用的端口所以你需要为每一个应用创建一个模板

创建 Hestia Nginx 配置模板

模板的位置在 /USR/本地/赫斯提亞/數據/templates/web/nginx的 目錄下,分为 .tpl.stpl 两种通常是一个名字两个文件这两个后缀分别对应了 HTTPHTTPS 的配置我们可以直接复制默认的 默認.tpl 默認.stpl 文件作为起始。打開 tpl 文件,你会发现它基本就是 Nginx 的配置文件只不过里边的内容被替换为了 %XXX% 这样的动态内容我们需要改的只有一个就是替换 %web_port% 为我们的 8081 而不是默认的 阿帕奇 端口。

同理,打開 stpl 文件,不过这次是 %web_ssl_port% 由于我们并没有必要在内网设置ssl所以改为同样端口 8081不过这次还没完我们要把里边的上游地址从 HTTPS 改為 HTTP因为我们的 docker app 并不需要支持 ssl我们最终会在 Hestia 里创建站点并添加 ssl 支持

注意,这两个文件中分别要编辑两个地方,一個是 位置 / 下面的 proxy_pass 字段,另一個是 位置 @fallback这两个字段下都要修改

这里我给出 stpl 的修改后的例子

站点配置

模板创建完成后就可以在 Hestia 中配置啦做好你的域名解析之后直接在 Hestia 中创建对应的站点然后在设置里正常开启https等配置。現在,这就是一个正常的空站点重点来了在站点设置的界面点开“高级选项”这里就可以针对 Nginx 切换模板我们打开它的下拉菜单此时你应该就已经能看到新创建的那个模板了,選擇,应用即可

在 Hestia 高级选项中切换 Nginx 模板

在 Hestia 高级选项中切换 Nginx 模板

參考文獻

  • HTTPS://forum.hestiacp.com/t/nginx-reverse-proxy-for-docker-app/1427
  • HTTPS://hestiacp.com/docs/server-administration/web-templates.html

本文由 落格博客 原創撰寫:落格博客 » Hestia CP with Docker app

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3871.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *