首页 文章

Apache和Nginx都在80端口[关闭]

提问于
浏览
12

我正在尝试在我当前安装并运行Apache httpd的 Cloud Cent OS服务器上安装Nginx .

我的托管公司告诉我,Nginx和Apache可以同时在端口80上运行,所以我的计划是在通过Yum安装后将.htaccess和Apache的Wordpress站点转换为Nginx .

我也写了一篇关于这个的文章,有些人建议使用Nginx作为反向代理,只提供静态文件但是用PHP运行Apache,因为Apache嵌入了PHP,即使它不支持像Nginx这样的多个并发请求,也会消耗更少的内存 .

我的直觉是将所有内容转换为Nginx将是有益的,但在这个阶段是不确定的 .

此外,切换时有什么我应该注意的吗?

如果是你在这种情况下你会怎么做?

3 回答

  • 11

    我不太确定你的托管公司通过他们的评论意味着什么,但你将无法在端口80上运行两个Apache和Nginx . 一旦绑定到端口80,另一个将无法绑定到它 .

    在当前情况下,最好的配置可能是将Nginx放在端口80上,将Apache放在8000或类似的上面 .

    使用nginx提供静态文件(请参阅try_files,因为"if" is evil),然后使用HTTP proxy module将所有PHP请求代理到端口8000 .

    使用Nginx的PHP的另一个常见配置是通过FastCGI使用PHP-FPM和代理,只需谷歌“PHP-FPM Nginx {您的操作系统}教程”作为教程 .

    关于PHP-FPM / mod_php的性能有much debate但是根据我的个人经验,我发现PHP-FPM的性能更高 .

  • 1

    我会在端口80上使用nginx作为面向Web的服务器,并将代理传递给将在不同端口上运行的apache . 许多站点都运行此配置 . 使用nginx提供静态文件比使用apache更有效 . 它实际上比听起来要简单得多 .

    This document详细解释 .

  • 14

    您应该将面向外部的Web服务器绑定到公共IP地址,将面向内部的Web服务器绑定到localhost(127.0.0.1:80) .

    因此,如果您公开使用Nginx,则将其绑定到公共IP地址,并将其代理到localhost上的Apache .

    最好使用单独的端口,以便更容易调试 .

相关问题