我在网上搜索了一段时间,但没有成功。我的问题如下:
我想根据请求的性质有条件地在一个 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 语句。