如何使用Unix套接字而不是TCP / IP堆栈向PHP-FPM发出HTTP请求


How to make HTTP request to PHP-FPM using Unix socket rather than TCP/IP stack?

我的网络堆栈是Ubuntu Linux - Nginx - PHP-FPM - Postgres... 在那台服务器上,我有一个 Python 应用程序与同一个数据库通信,并与具有 PHP API 的 Web 应用程序共享数据。

目前,我直接从Python与数据库交谈,但这意味着对所有数据库通信逻辑进行两次编码。 从Python向应用程序的PHP API发出HTTP请求会很好。

我可以做这样的事情:

POST http://localhost/my-app/foo [...]

但是使用 TCP/IP 会有开销。 有没有办法将HTTP请求直接发送到PHP-FPM套接字或创建将请求路由到Nginx的unix套接字?

像...

POST fastcgi://unix:/var/run/php5-fpm.sock/my-app/foo [...]

你可以让Nginx在Unix套接字上侦听。

例如:

listen unix:/var/run/nginx.sock;

有关更多详细信息,请参阅侦听指令的文档。