关于nginx与php-cli之间的“通讯”是怎么实现的?

artisan

关于nginx&php-fpm,应该是按照cgi协议规范“通讯”,nginx与php-cli是怎么实现的?(stream?)
实现方式上有什么区别,需要注意哪些地方?($_GET $_POST之外)

825 2 1
2个回答

Tinywan

nginx与php-cli 没关系

杨柳岸

nginx 和 php-fpm 通讯靠fastcgi协议的两种方式

location ~ [^/]\.php(/|$) {
      fastcgi_pass 通讯方式;
      fastcgi_index index.php;
      include fastcgi.conf;
}

通讯方式
#tcp socket 
fastcgi_pass 127.0.0.1:9000;

#unix socket 
fastcgi_pass unix:/dev/shm/php-cgi.sock;

nginx和php-cil下的http服务(webman,hyperf)不需要通讯,一般用nginx是需要为接口或网页绑定域名和证书,隐藏服务器真实ip,做反向代理服务器。

server {
    listen 80;
    server_name proxy (代理) .stu;
    ...
    location / {
    ...
       #后端http服务地址,可以是任何后端语言写的http服务
        proxy_pass http://127.0.0.1:8080; 
    }
}
  • jie365@126.com 2023-01-09

    很详细

  • artisan 2023-01-09

    反向代理,可以理解为保持原来的请求状态(http协议),php-cli(如webman)按照http协议解析获取请求参数?

年代过于久远,无法发表回答
🔝