首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Plesk和LetsEncrypt配置LetsEncrypt码头容器

用Plesk和LetsEncrypt配置LetsEncrypt码头容器
EN

Server Fault用户
提问于 2019-02-21 19:34:05
回答 1查看 1.9K关注 0票数 2

嗨,我的GitLab设置有问题。

我想要达到的目标:

  • 在Docker容器中运行GitLab
  • 通过端口80和443的子域( GitLab )访问https的GitLab
  • 通过*.mydomain.com和LetsEncrypt提供的通配符证书管理SSL (已用于Plesk管理的子域)
  • 能够在GitLab容器(npm脚本等)中运行构建任务。最后,将特定的输出文件移动到Plesk (容器外)管理的子域目录中。

到目前为止我所做的:

  • 使用预先安装的Plesk Onyx 17.8.11运行Ubuntu 18.04.2的v服务器
  • 通过Plesk安装mydomain.com
  • 通过Plesk为LetsEncrypt设置mydomain.com通配符证书
  • 通过ssh安装码头(不是Plesk)
  • 在mydomain.com:30080的容器中运行mydomain.com:30080

我对服务器env和Docker完全陌生,所以我不确定所需的结构。也许你们知道该怎么做?

谢谢!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-06-24 18:29:14

此设置适用于我:

  1. 创建一个子域从Plesk (前。gitlab.mydomain.com)
  2. 在“主机设置”中选择“让我们加密证书”,并确保在HTTPS上设置永久301重定向(只需勾选复选框)
  3. 启动码头集装箱时,公开端口80 (前)。80:10080)
  4. 在"Apache & nginx设置“中添加以下内容:
代码语言:javascript
复制
location / {
    proxy_pass http://localhost:10080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
}

这将通过HTTPS和您的加密证书为您的子域提供服务,同时将请求代理到容器的80端口,这样您就不必费心从容器外部将证书传递给GitLab了。

据我理解,这是安全的,因为未加密的通信量被限制在服务器中(如果您的Docker守护进程与Plesk位于同一台服务器上),并且无法从外部访问。

--

关于你的最后一点

能够在GitLab容器(npm脚本等)中运行构建任务。最后,将特定的输出文件移动到Plesk (容器外)管理的子域目录中。

这本身就是一个问题。

要运行构建,您需要安装GitLab运行程序。GitLab文档建议将其安装在不同的主机上,但您可以尝试在同一台主机上使用它们的码头形象

有关构建和部署应用程序的信息,请参阅GitLab Runner 文档。您需要为所谓的“持续部署”设置“管道”。

要为每个应用程序创建子域,您可以这样做:

  • 从Plesk手动创建子域,并将脚本部署为“管道”构建的最后一步。
  • 使用一些脚本和Plesk自动创建子域
  • 忽略Plesk,然后转到full Docker;使用反向代理来处理所有子域,让我们加密证书,比如特雷菲克

这些只是指点,我建议你搜索和阅读更多关于CI/CD的主题。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/955158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档