使用 docker 搭建 PHP 应用时 web server 的选择

2023-01-23 23:46:22 +08:00
 f1ynnv2

php 的应用是 dokuwiki 。

我目前的方案是 nginx + php-fpm 来运行 dokuwiki 。其中 nginx 即作为 webserver,又配合 acme.sh 提供 https 服务。

现在准备把这套东西 docker 化,方便后面折腾(细节不表)

找了一下 Nginx Proxy Manager 这个是基于 docker 的反代方案,也能提供 SSL 证书免费更新,正好可以给手头的其它服务一起提供 https 服务,就准备用它了。

然后再准备拉一个 php-fpm 的镜像来提供指定版本的 php 也没问题。

现在就是关于 webserver ,虽然前面 Nginx Proxy Manager 里面其实已经跑了个 Nginx 了,但是它这个 Nginx 应该是不能对外提供 Web server 功能吧。

我的疑问是,我是不是还得专门再搞个 nginx 的镜像专门用来为 dokuwiki 提供 webserver 的功能?总感觉怪怪的,这样就跑了 2 个 Nginx 了。 或者是否有其它轻量级的 webserver ?像是 sprintboot 里那种 Netty 轻量级的 http server?

或者我是不是对 docker 的使用有些误解,像是这种情况就直接专门搞个 nginx 镜像作为 webserver 得了,不用管其它镜像里是不是也有 nginx 。

1037 次点击
所在节点    Docker
2 条回复
superares
2023-01-24 07:17:33 +08:00
负载小用 apache+mod_php 的镜像就行了。
baobao1270
2023-01-25 11:34:46 +08:00
我是选择基于 alpine 把 nginx+php 打包在一个 image 里,名字就叫 lnmp ,然后再基于这个镜像构建 PHP 应用的镜像。没有用官方的 nginx 和 php-fpm 镜像。
至于 acme ,还是建议你使用 dns mode ,跑在宿主机上,然后把 https 证书挂在到 traefik 。
因为我一个服务器上会运行多个应用,有不同的 host ,所以用 traefik 作 HTTP 路由。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/910394

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX