你可以依靠Nginx作为你唯一的networking服务器。 就性能而言,我知道它运行良好,但是它在安全性方面又如何呢? 我知道Apache是稳定的,有ModSecurity。 Nginx不是这种情况。
我将使用Nginx作为唯一的Web服务器,并且仅用于dynamic内容。 我的所有静态内容都由CDN提供。
nginx通过“反向代理”将dynamic内容运行到fastcgi服务器。 大多数发行版中的php-cgi软件包包括fast-cgi模式,其中php将启动一个小型fcgi服务器,您也可以连接nginx。
这种分离可以让你做出聪明的事情:
更新:每个评论下面,这里有一些链接:
fastcgi_pass param – 这是如何指示nginx将请求传递给fastcgi服务器。 FastCGI通过传递variables(有意识地看起来像CGI环境variables)来工作,但是允许你将任意数据从前端传递到后端。 在debian发行版(以及iirc的源代码发行版)中,还有一个fastcgi.conf文件,其中包含所有缺省参数,大多数工具包需要离开地面
上游模块 – 上游模块允许您定义多个上游服务器,可以是其他Web服务器,fastcgi服务器,或不是。 fastcgi_pass模块包含一个使用上游的简短示例。 请注意,在单主机系统上,您甚至可以使用unix域套接字,并且不会产生TCP / IP开销!
PHPFCGI示例 – 这概括了一个完整的示例configuration。 我个人很喜欢daemontools(或者runit,如果你不是djb的粉丝),并且已经编写了非常简单的包装来运行php-fcgi在进程监督下(如果exception终止,将会重启),但是在该页面上提供的脚本是一个可以在/etc/init.d/中折腾的SysV风格的脚本,并在/etc/rcX.d/中添加相应的链接。 在该页面的脚本中,可以调整一些variables来调整运行fcgi应用程序的环境。
虚拟主机是与“服务器”部分促进:
server { server_name www.host.com host.com other_aliases; ... } server { server_name www.host2.com host2.com other_aliases; ... }
有关更多详细信息,请参阅server_name部分,该页面的其余部分包含大量关于如何configurationcorehttp模块的信息。
在安全方面,Igor(首席开发人员)认真对待安全问题,经常参与他们非常活跃的邮件列表。 这里列出了已知的安全问题 ,下面是他们的邮件列表存档列表
我运行nginx与php-fcgi在高负载的服务器上,它的工作完全令人惊叹。
安全是你自己创造的东西。 总是。 请不要错误地依靠一些软件,当涉及到真正的问题时,会神奇地保护你。 它不会。 好的编码和pipe理将会。
我以为Nginx只能提供静态内容吗? 这使得php成为“不可能完成的任务”