`

Nginx中fastcgi_pass的配置问题

阅读更多
Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket.
其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置:
方式1:
php-fpm.conf: listen = 127.0.0.1:9000
nginx.conf: fastcgi_pass 127.0.0.1:9000;
方式2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;
其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw----.

UNIX Domain Socket可用于两个没有亲缘关系的进程,是目前广泛使用的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的.这种通信方式是发生在系统内核里而不会在网络里传播.UNIX Domain Socket和长连接都能避免频繁创建TCP短连接而导致TIME_WAIT连接过多的问题.对于进程间通讯的两个程序,UNIX Domain Socket的流程不会走到TCP那层,直接以文件形式,以stream socket通讯.如果是TCP Socket,则需要走到IP层,对于非同一台服务器上,TCP Socket走的就更多了.

UNIX Domain Socket:
Nginx <=> socket <=> PHP-FPM
TCP Socket(本地回环):
Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM
TCP Socket(Nginx和PHP-FPM位于不同服务器):
Nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> PHP-FPM

像mysql命令行客户端连接mysqld服务也类似有这两种方式:
使用Unix Socket连接(默认):
mysql -uroot -p --protocol=socket --socket=/tmp/mysql.sock
使用TCP连接:
mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306
分享到:
评论

相关推荐

    nginx配置、proxy_passfast 和 cgi_pass区别,反向代理,负载均衡、nginx+fastcgi+php的并发阻塞问题

    目录 1、准备两个tomcat和一个nginx ...1.3、nginx:http://127.0.0.1 2、反向代理proxy_pass ...3、网关代理fastcgi_pass(php+nginx配合) 3.1、php安装(本人安装的是php-7.3.1) 3.1.1、php下载 3.1

    反向代理Nginx

    # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache'...

    nginx 1.9 window 版本

    #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能 worker_connections 1024;#单个后台worker process进程的最大并发链接数 # multi_accept on; } #设定...

    nginx-http-concat:WordPress插件可将单个脚本文件CSS和Javascript连接成一个资源请求

    通过将以下内容添加到您的WordPress安装NGINX配置中,配置NGINX服务器以执行该过程中的串联步骤: location /_static/ { fastcgi_pass unix:/var/run/fastcgi.sock; include /etc/nginx/fastcgi_params; ...

    10-编译PHP并与nginx整合.zip

    10-编译PHP并与nginx整合 location ~ \.php$ { root html; fastcgi_pass fastcgi_index fastcgi_param include }

    深入Nginx + PHP 缓存详解

    Nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的fastcgi_cache作用是缓存fastcgi生成的...

    php基于Phalcon的博客CMS.rar

    添加nginx配置,demo: server { listen 80; server_name your-site-name.com; root /path/PhalconCMS/public; index index.php index.html index.htm; location / { if ($request_uri ~ (.+?\.php)(|...

    Nginx中使用Lua脚本配置示例

    先配置nginx 代码如下:  location ~ .*\.(php|php5)?$  {  if ($request_uri ~ “one/test”) {  access_by_lua_file /opt/nginxrw/lua/limiturl.lua;  }  fastcgi_pass 127.0.0.1:9000;  fastcgi_index ...

    使用nginx做负载均衡的模块解读

    nginx 的负载均衡功能依赖于 ngx_http_upstream_module模块,所支持的代理方式有 proxy_pass(一般用于反向代理),fastcgi_pass(一般用于和动态程序交互),memcached_pass,proxy_next_upstream,fastcgi_next_pass,...

    linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享

    经过志文工作室测试有效的相关配置主要内容如下: 代码如下:location ~ \.php(.*)$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_...

    nginx配置支持php的pathinfo模式配置方法

    nginx模式不支持pathinfo模式,...fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; ##通过设置模拟出pathinfo set $path_info “”; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~

    Nginx出现The plain HTTP request was sent to HTTPS port问题解决方法

    今天在配置Nginx+SSL的时候出现如题的错误,后来与度娘一番云雨之后找到一个解决方法,挺有用,随手转之。 一般在vhost的配置中会有php解析的一段,如: 代码如下: location ~ .*\.(php|php5)?$ {  try_files $uri...

    php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式

    fastcgi_pass 127.0.0.1:9000; php-fpm 在容器里的 nginx.conf location /php { proxy_set_header Host $host:$server_port; proxy_pass http://138.38.38.111:80/; } 2.UDS 方式监听 php-fpm listen =

    php和nginx交互实例讲解

    step3:通过第二步可以看出,用户请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将用户的请求发送给php-fpm。如果用户访问的是静态资源呢,那就简单了,nginx直接将用户请求的静态资源返回给...

    nginx-adapter:使用NGINX配置运行Caddy

    球童NGINX配置适配器 这是Caddy的,可将转换为Caddy的本机格式。 该项目尚未完成,我们正在要求社区帮助完成其开发。 由于资源限制,我们目前无法自行完成所有开发。 但是,我们希望您能够将它选为一个社区,并共同...

    ansible-nginx-vhost:角色扮演

    Nginx虚拟主机为Nginx配置一个虚拟主机要求Nginx应该已经安装在系统上(可以通过Firehed.nginx角色来完成)角色变量必需的: vhost_index: index.phpvhost_root: /var/www/example.comvhost_name: example.com可选的...

    nginx虚拟主机防webshell完美版

    我们先来看下nginx.conf  server { listen 80; server_name www.a.com; index index.html index.htm index.php; root /data/htdocs/www.a.com/;  #limit_conn crawler 20; location ~ .*\.(php|php5)?$...

    lnmp环境中如何为nginx开启pathinfo

    1、注释nginx.conf中的try_files(因为跟pathinfo.conf中的重复了),开启pathinfo.conf配置: location ~ [^/]\.php(/|$) { # comment try_files $uri =404; to enable pathinfo #try_files $uri =404; ...

    PHP 应用容器化以及部署方法

    经典的 LNMP(linux + nginx + php + mysql)环境有很多现成的部署脚本,但是在 Docker 盛行的今天,依然有很多同学在如何部署上有一些列问题,所以这篇简单介绍一下... fastcgi_pass 127.0.0.1:9000; fastcgi_ind

    phuip-fpizdam:CVE-2019-11043的漏洞利用

    在某些Nginx + php-fpm配置中,该错误可能是从外部触发的。 这意味着,如果您的配置易受攻击,则Web用户可能会执行代码(请参阅)。写上去尽管我们懒得写论文,但蔡健熙在他的博客中发表。 对他表示敬意。 此外,我...

Global site tag (gtag.js) - Google Analytics