使用NGINX单元构建应用程序堆栈

客户经常问我们如何在已经建立的某种技术堆栈中使用NGINX单元。就其本身而言,NGINX单元很容易配置,但是将其注入到各种工具和服务中的正确方法可能不太明显。同样的问题也适用于最终客户的潜在利益。这篇文章旨在通过一个相当普遍的用例来阐明该主题。

问题:复杂的应用程序部署工作流

我们的许多读者可能遇到的一个问题是,需要自动化生产环境的部署过程,这些过程涉及定制的语言运行时版本以及特定的库,模块和扩展,以适应特定的业务需求。通常,这可以通过适当的临时工作来实现,但是将定制的半手动工作流程转换为适合较大规模的一系列可调整的自动化步骤的困难可能非常繁琐,以至于您选择完全取消该项目。让我们看看NGINX Unit在这种情况下如何简化事务。

这种情况通常由于需求重叠而变得复杂,例如:

  • 自动执行Web应用程序本身的设置过程
  • 构建定制的语言运行时来满足应用程序的需求
  • 将特定于部署的设置注入到生成的通用映像中
  • 部署和管理实例化映像

这些要求中的每一个都可以单独满足,但是再次不得不反复重复所有步骤以达到您的Web应用程序有趣部分的巨大压力可能会让人不知所措。在这里,我们建议一种减轻这种痛苦的方法,使您可以花更多的时间增加业务价值,而不必铺设管道。您可以按原样使用它,也可以使其适应更复杂的场景。

解决方案:Docker和NGINX部门

本质上,我们在这里描述的是由您自己的Timo Stark设计并在GitHub上提供的,用于您选择的Web应用程序的基于NGINX Unit的装备;欢迎使用。构建堆栈具有用于目标应用程序的WordPress,并且恰当地称为unitwp。但是,它可以适用于其他选项:例如,它已经为基于CakePHP的网站https://kaufdaheim.org提供了强大的动力,该网站可以在正在进行的COVID‑19锁定期间帮助德国的当地企业维持生计。

这里描述的设置几乎毫不费力地创建了具有内置PHP支持的自定义的基于NGINX Unit的容器映像,在映像中准备了WordPress安装,启动了要在NGINX Unit中启动的Web应用程序,最后运行并将其公开在pre-配置的端口。由于设置开发环境使用环境变量中讨论的原因,该安装程序特意避免包含数据库。

该解决方案依赖于官方的NGINX Unit映像,该映像已预先配置了PHP 7.3运行时以及适用于NGINX Unit的适当语言模块,与准备自定义映像相比,可节省大量时间和精力。如果您喜欢可以在合适的情况下构建的基本Docker映像,请使用该nginx/unit:1.16.0-minimal映像,该映像仅包含核心NGINX Unit可执行文件。有关将NGINX Unit与Docker结合使用的建议,请参阅我们的官方Docker how-to

邀请回答
提问于 2020-05-08 11:10
322 次浏览
共0个回答

发表评论
提问者

阿尔巴

如果你联盟

  • 12

    文章

  • 9

    粉丝

  • 19

    被赞

阿尔巴
按Enter键发送
您已邀请位用户
版权所有©F5 Networks,Inc.保留所有权利。京ICP备16013763号-5