反向代理特定请求

时间:2016-05-24 23:58:45

标签: php nginx

我有高负荷网站,我的系统在高峰时段内存耗尽。我想分割负载,以便恰好在特定URls上的读取操作移动到另一个服务器。

我正在使用nginx和php-fpm,如何在不同的服务器上重定向PHP-fpm处理的特定URL?

这是我要求的蓝图。

location /feed/generate {
  use php-fpm on a different server
}

location / { #all other requests
 use existing php-fpm
}

1 个答案:

答案 0 :(得分:0)

在第二台服务器上设置php-fpm,侦听外部可访问的IP(不是127.0.0.1)端口9000。 IP地址应该是私有的(不路由到Internet)和/或配置为仅允许来自可信主机(防火墙)的连接。

upstream feed_php_fpm {
    server <other server ip>:9000;
}

upstream local_fpm {
    server 127.0.0.1:9000;
}

location /feed/generate {
    fastcgi_pass feed_php_fpm;
    include fastcgi.conf;
}

location / {
    fastcgi_pass local_fpm;
    include fastcgi.conf;
}

请理解你在做什么以及php-fpm监听网络端口与文件套接字的含义。