单个 nginx vhost 中的不同 php-fpm 池

单个 nginx vhost 中的不同 php-fpm 池

我在网上搜索了一段时间,但没有成功。我的问题如下:

我想根据请求的性质有条件地在一个 nginx vhost 中使用不同的 php-fpm 池,但找不到方法来配置location ~ \.php$ {...}我的 vhost 配置的一部分以支持两个不同的工作池。

我想到唯一的解决方案是将 Web 请求重定向到另一个 nginx 站点。

先感谢您

答案1

您可以按照以下原则进行工作:

set $upstream /path/to/defaultfpm-socket;

location /first {
    set $upstream /path/to/fpm1-socket;
}

location /second {
    set $upstream /path/to/fpm2-socket;
}

fastcgi_pass $upstream;

因此,我们在此将$upstream变量设置为我们想要根据位置(URI 的一部分)使用的 PHP5-FPM 套接字。然后,我们使用该变量将fastcgi_pass请求传递给该 PHP5-FPM 实例。

location规则可以使用普通的 nginx 匹配规则,如正则表达式、前缀等匹配。最好设置一个默认值,以便始终解析请求。

您还需要在配置中包含其他 FastCGI 语句。

相关内容