我正在尝试在我当前安装并运行Apache httpd的云Cent OS服务器上安装Nginx。
我的托管公司告诉我,Nginx和Apache可以同时在端口80上运行,所以我的计划是在通过Yum安装后将.htaccess和Apache的Wordpress网站转换为Nginx。
我也写了一篇关于这个的文章,有些人建议使用Nginx作为反向代理,只提供静态文件,但是用PHP运行Apache,因为Apache嵌入了PHP,即使它不支持像Nginx这样的多个并发请求,也会消耗更少的内存
我的直觉是将所有内容转换为Nginx将是有益的,但在这个阶段是不确定的。
此外,切换时有什么值得注意的吗?
在这种情况下你会怎么做?
答案 0 :(得分:14)
我不太确定你的托管公司的评论是什么意思,但你将无法在端口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 :(得分:12)
我会在端口80上使用nginx作为面向Web的服务器,并将代理传递给将在不同端口上运行的apache。许多站点都运行此配置。使用nginx提供静态文件比使用apache更有效。它实际上比听起来要简单得多。
This document详细解释。
答案 2 :(得分:1)
您应该将面向外部的Web服务器绑定到公共IP地址,将面向内部的Web服务器绑定到localhost(127.0.0.1:80)。
因此,如果您公开使用Nginx,则将其绑定到公共IP地址,并将其代理到localhost上的Apache。
最好使用单独的端口,以便于调试。