尝试学习现代服务器设置,需要正确分层

尝试学习现代服务器设置,需要正确分层

在传统的 LAMP 服务器中,我们有运行 Apache 的 Linux、运行 MySQL 和 PHP。

我目前正在自学一种更现代的方法,作为自学 node.js 的开端。到目前为止,我已经成功地在虚拟机上运行了 Ubuntu,但我对需要相互构建哪些元素才能完成服务器创建有些困惑。

我想使用 composer、git 和可能的 redis 在 docker 上运行 node.js(这可能需要单独的服务器,我还不太清楚)。然后我想要一个类似的设置来运行 php/mysql,这样我的节点应用程序也可以使用这些技术的优势。这似乎与生产环境非常相似,可以形成一个良好的学习环境。

所以我认为正确的分层是:

  • 虚拟框
  • 运行安装了 composer、git 和其他实用程序的 ubuntu
  • 运行 Docker 镜像
  • 根据需要包含 node.js 或 php/mysql 服务器
  • 进而运行常见的代码和框架

看起来对吗?我最不确定的是 docker 的作用 - 它是否也应该包含 ubuntu 映像以及 composer 和 git 安装应该放在哪里(在 os 层还是 docker 层?)。

对于此设置的一般性建议/批评将不胜感激。

答案1

我想我明白你想做什么。你的 Virtualbox Ubuntu 是主服务器,你应该在其中:

  1. Docker
  2. git 和所有实用程序
  3. 您的内容(html、php、css、js 等)

Docker 允许您安装容器化应用程序,即:

  1. Nginx 和 php-pfm
  2. MySQL
  3. NodeJS

您应该将它们视为应用程序,仅此而已。每个应用程序应该有一个容器,因此当您想要使用不同版本(例如 MySQL)时,您应该销毁该容器并创建一个新容器。每个容器都应公开需要访问的端口(例如,nginx 的端口 80 或 443)。此外,还应授予容器访问源文件所在的主服务器上的文件夹的权限(并使用 git 进行版本控制)。这样,销毁容器应该与卸载程序相同。

相关内容