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