我已经在 Ubuntu 服务器上使用 LAMP 系统几年了,主要用作 CMS 系统(WordPress、Drupal 等)的平台。现在我想开始在 LEMP 系统中使用 Nginx。由于我有一台只有一个硬盘的机器,无法添加第二个硬盘,那么将它们放在同一台机器上的最佳解决方案是什么?
a)创建 2 个不同的分区来托管 2 个 Ubuntu 服务器实例(一个使用 LAMP,另一个使用 LEMP),作为双启动场景
b)使用 Docker 为每个堆栈提供 2 个不同的容器
c) 在单个 Ubuntu 服务器中安装 LAMP 并创建虚拟机来运行 LEMP 堆栈。
谢谢您的任何建议!
此致
答案1
作为@George Udosen据说,在这三个选项中,选项 b) 是最好的。在所有其他提及的情况下,您都需要维护两个操作系统。此外,如果您需要在不同情况下测试同一个站点,Apache 和 Nginx 的虚拟主机可以共享相同的 DocumentRoot 目录和其他资源(我不确定这在 Docker 中是否可行,但如果您使用本机安装包,肯定可以)。
如果您同时安装了 Apache 和 Nginx,无论是通过 Docker 的容器还是作为本机包,您都将拥有以下选项:
1)如果 Apache 和 Nginx 都使用标准 HTTP/S 端口(80/443),那么您可以根据当前想要使用的服务器启动/停止服务器。
2) 如果其中一个服务器监听自定义端口,您可以通过该端口访问它,同时您将能够通过标准端口访问另一个服务器。在这种情况下,booth 服务器可以同时处于活动状态。例如,假设 Apache 监听 81,而 Nginx 监听 80,那么您将能够访问:
- Apache 通过类似
http://domain.com:81/
和 - Nginx 通过
http://domain.com/
。
3) 使用反向代理是上述情况的扩展,其中一个服务器监听自定义端口(假设这是 Apache),另一个监听标准端口(Nginx)的服务器设置为反向代理。在这种情况下,您将能够访问:
- Nginx 通过
http://domain.com/
和 - Apache 通过类似的东西
http://sub.domain.com/
指向http://domain.com:81/
。
除这种情况外,非标准端口可能会被防火墙拒绝公共访问,因此您只需要维护可从外部访问的 Web 服务器的安全性。