使用Nginx进行严格的安全性和虚拟主机隔离?

我目前有一个Apache Web服务器,在这个服务器下,每个虚拟主机使用HTTPD-ITK和AppArmor模块进行隔离。 每个虚拟主机的工作人员都由服务器设置为setuid / setgid,然后放置在AppArmorconfiguration文件中。

我正在寻找使用Nginx的,但我找不到任何文档设置它,以便在所有虚拟主机之间共享工作进程,工作进程是每个虚拟主机(因此可以是setuid / setgid)。 在Nginx下有没有办法做到这一点?

nginx是一个完全不同于Apache的东西(除了是一个HTTP服务器)。 它的模型是,nginx本身没有“工作者”,在这个进程中运行一些web应用程序。

nginx基本上做了http请求的“前端终止”,然后把工作交给后端服务器,可以通过HTTP再次完成,或者像FCGI,mod_passenger等特定的协议。

因此,不需要直接在nginx中使用Apache来做什么。 这是一个特点:它允许通用架构更加简化,最后更快,对资源的要求更低,喜欢CPU的能力和内存。

我最终通过为每个网站运行一个Nginx实例来解决这个问题,再加上一个Nginx主服务器,它将代理服务器反向代理到每个网站中。 这与PHP-FPM相结合,为需要它的站点提供PHP。

我已经把一个框架,处理一个GitHub存储库的Nginx的configuration这样的设置为任何人使用: https : //github.com/hach-que/Nginx-Secure 。