我有一个在实时网站上运行 LAMP 的 Mediatemple 服务器(Centos / Plesk)。
我看过一些解释如何安装 nginx 的教程,但我不明白如何在实时服务器中安装。
如果我没记错的话,我需要安装 nginx 并在不同的端口上运行它,以查看一切是否正常。然后,当一切正常时,我将其端口切换到 80 并终止 apache。
如果是这样的话,我有几个问题。
它会与 php 和 Apache 并行工作吗?(nginx 的 php 配置没有变化吗?)。
我如何测试 https 连接(它们有专用端口,所以我不能使用不同的端口使其与 apache 并行工作。
我将非常感激任何有关在不中断当前流量的情况下在实时服务器上安装、测试和切换到 nginx 的建议。
谢谢,尼罗
答案1
如果您在 CGI 或 FastCGI 模式下运行 PHP,那么您应该能够与 Apache 和 nginx 共享二进制文件。但是,如果您使用 mod_php,则需要做更多工作。
如果您最终在同一台机器上运行两种 PHP 配置,则需要确保它们在相同的用户上下文中运行 - mod_php 将以 Apache 用户的身份运行脚本(通常称为“nobody”或“www-data”(www-data 是 Debian 的默认值)或类似名称)并且大多数 CGI/FastCGI 设置使用 suEXEC 或类似方式以便在拥有脚本的用户的安全权限下运行脚本 - 这种差异可能会在文件所有权和权限方面产生重大问题。
对于 HTTPS:您可以在不同的端口上运行 - 证书通常特定于服务器名称。在地址 111.222.333.444 上运行监听端口 444 的 Web 服务器进程可以使用“www.yourdomain.com”的证书,就像在 22.33.44.55 端口 443 上列出的进程一样。
不过,我强烈建议您不要尝试在一台机器上运行所有程序,而是在另一台机器或虚拟机上安装 nginx,然后尝试将系统迁移到那里进行测试。完成此操作后,您将对迁移实时站点需要做什么有更好的了解。不要只是摆弄实时服务器,并希望这个过程第一次就能顺利进行!
答案2
是的,您可以将其与 apache 一起使用。您的发行版软件包可能会抱怨将其与 apache 一起安装,但如果有必要,请尝试强制安装它,并在尝试(重新)启动它之前更改使用的端口。
http 也使用默认端口(80),就像 https 的端口 443 一样。只需在服务器中指定不同的端口(例如 883)即可在浏览器中强制使用端口(https://你的服务器:883),然后继续正常测试。
当一切似乎都正常工作时,停止 nginx,将端口设置为正常,停止 apache,启动 nginx。完成。