记 nginx fastcgi_pass 配置一则

今天是国庆第二天,首先还是祝大家生活愉快~,不过在前一个小时前我内心是忧郁的,因为我犯了一个一山不容二虎的错误,上操作
file
fastcgi_pass 我同时指定了俩,以至于我在重起 nginx 时得到以下错误

nginx: [emerg] "fastcgi_pass" directive is duplicate in /etc/nginx/conf.d/wp.conf:58

根据错误提示 + google,虽然问题得到了解决,但对其中的细节原由并不是很了解,跟着搜了很多文章,知道 Nginx 和 PHP-FPM 的进程间通信有两种方式
一、TCP / IP

ip + 端口号,nginx 默认 127.0.0.1:9000,这种方式需要经过网络,可以跨服务器访问。
php-fpm 和 nginx 在同一台服务器处理流程
nginx <=> socket <=> TCP/IP <=> socket <=> php-fpm
php-fpm 和 nginx 不在一台服务器处理流程
nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> php-fpm
配置如下:
/etc/php/7.0/fpm/www.conf ==> listen 127.0.0.1:9000(没有就添加一行)
/etc/nginx/file_name.conf ==> fastcgi_pass 127.0.0.1:9000(一般打开注释就行)

二、UNIX Domain Socket( php7 默认 )

此方式, 是 套接字 不经过网络只能用于 nginx 跟 php-fpm 都在同一服务器的场景
处理流程: Nginx <=> socket <=> PHP-FPM
配置如下:
/etc/php/7.0/fpm/www.conf ==> /run/php/php7.0-fpm.sock
/etc/nginx/file_name.conf ==> /run/php/php7.0-fpm.sock

参考文献

本作品采用《CC 协议》,转载必须注明作者和本文链接
你迷茫的原因大多数是因为,想得多,做得少
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!