首页 > 系统相关 >Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置

Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置

时间:2023-10-13 12:12:42浏览次数:54  
标签:www php 自定义 URL 0.0 0.4 fpm PHP pool

Nginx修改演示:

vim /usr/local/nginx/conf/vhost/example.com

server{
	listen 80;
	server_name 192.168.1.180;

	location / {
		root /Code/project/public;
		index index.php index.html;
		include /usr/local/nginx/conf/rewrite/laravel.conf;

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include        /usr/local/nginx/conf/fastcgi_params;
        }
	}

#由此处开始,是配置一段自定义的配置,如果访问站点192.168.1.180/test下的路径,会执行下方的配置-------------------------------
	location /test {
		root /Code/project/public;
		index index.php index.html;

        location ~ \.php$ {
            #注意此处配置的端口,不同的项目要使用不同的sock文件,或者IP:Port
            fastcgi_pass   127.0.0.1:9001;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include        /usr/local/nginx/conf/fastcgi_params;

			#一些自定义的配置
            fastcgi_connect_timeout 999999;
            fastcgi_read_timeout 999999;
            fastcgi_send_timeout 999999;
        }
    }
}

#保存后检测是否有配置错误
../../sbin/nginx -t
#nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
#nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#确认无误后重启
service nginx restart

PHP-FPM修改演示(推荐配置成功后再配置Nginx):

vim /usr/local/php/etc/php-fpm.conf

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 32
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 256
pm.process_idle_timeout = 5s


#配置自定义进程参数-------------------------------------------------------------------------
#起一个名字
[test]
#此处必须使用不同的端口区分上方的www配置
listen = 127.0.0.1:9001
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 32
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 256
pm.process_idle_timeout = 5s
request_terminate_timeout = 999999

#保存后重启
service php-fpm restart

#查看进程,有test和www
ps aux | grep php
root      15597  0.0  0.4 179912  8328 ?        Ss   10月12   0:03 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www       15598  0.0  0.9 188668 17688 ?        S    10月12   0:04 php-fpm: pool www
www       15599  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15600  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15601  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15605  0.0  0.4 181956  8052 ?        S    10月12   0:00 php-fpm: pool test
www       15803  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15811  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15854  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15855  0.0  0.4 181956  9232 ?        S    10月12   0:03 php-fpm: pool www
www       15941  0.0  0.4 181956  9232 ?        S    10月12   0:00 php-fpm: pool www
www       15942  0.0  0.4 181956  8052 ?        S    10月12   0:00 php-fpm: pool www
www       16241  0.0  0.4 181956  8044 ?        S    10月12   0:00 php-fpm: pool www
www       16242  0.0  0.4 181956  8056 ?        S    10月12   0:00 php-fpm: pool test
www       16300  0.0  0.4 181956  8056 ?        S    10月12   0:00 php-fpm: pool www
www       16301  0.0  0.4 181956  8056 ?        S    10月12   0:00 php-fpm: pool test
www       16418  0.0  0.4 181956  8052 ?        S    10月12   0:00 php-fpm: pool test
www       16635  0.0  0.4 181956  8052 ?        S    10月12   0:00 php-fpm: pool test
www       28059  0.0  0.4 181956  8056 ?        S    08:29   0:00 php-fpm: pool www
www       28302  0.0  0.4 181956  8052 ?        S    08:51   0:00 php-fpm: pool test
root      28694  0.0  0.0 112728   984 pts/0    S+   09:13   0:00 grep --color=auto php

#查看网络相关,一个9000,一个9001就说明配置正常
netstat -nlp | grep php
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      15597/php-fpm: mast 
tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      15597/php-fpm: mast

Nginx与PHP-FPM两种通信方式:

1. Tcp默认的9000端口通信:

  • php-fpm配置:listen = 127.0.0.1
  • 与nginx进程通信:fastcgi_pass 127.0.0.1:9000;
  • 优点:
    • 使用网络传输,可以跨服务器。
    • TCP通信有一些校验机制,具有更高的稳定性。
  • 缺点:
    • 性能略微比socket差。

2. Unix Socket(套接字)通信:

  • php-fpm配置 :listen = /tmp/php-cgi.sock
  • 与nginx进程通信:fastcgi_pass unix:/tmp/php-cgi.sock;
  • 优点:
    • 不使用网络协议,所以不需要走网络协议的各种处理,相对于TCP略微减少通信开销。
    • 适合单机部署。
  • 缺点:
    • 使用文件传输,不支持跨服务器。
    • 大量请求时不稳定。
    • sock是一个文件,容易忽略掉权限不足的问题,增加运维成本。

为什么 TCP比Unix Socket更稳定?

容错和重传机制:TCP 提供了许多容错和重传机制,以确保数据的可靠传输。它使用序号、确认和重传机制来检测和纠正传输中的错误,可以重新发送丢失的数据包,保证数据的完整性。而 Unix 域套接字没有内置的容错和重传机制。

标签:www,php,自定义,URL,0.0,0.4,fpm,PHP,pool
From: https://www.cnblogs.com/phpphp/p/17761795.html

相关文章

  • php--点赞功能的实现
    最近在做一个视频网站,需要实现视频的点赞功能,我是结合ajax和数据库实现的,数据库的格式为有四个字段:文章id,赞,踩,ip。因为需要一个ip只能点赞一次,所以需要一个ip字段存储点赞的ip,这样便于判断该ip是否已经点赞过了;我将点赞和踩的图片做成两个按钮;具体代码如下:https://www.52mwyd.c......
  • Linux下配置安装PHP环境
    参考别人的做法,遇到问题上网查,下面就是安装步骤.一、安装Apache2.2.221、到官网下载  https://www.52mwyd.com/2、解压   tar -zxvfhttpd-2.2.22.tar.gz3、建立目标文件夹(注意以下所有操作都时在root用户下执行的)   mkdir/usr/local/apache2   也就是说等下......
  • PHP快速教程
    1.本文主要针对有C语言(或其他编程语言)基础的人快速学习PHP的,所以不会对一些基础知识作过多解释,比如“=”是赋值不是等于。2.本文适合已学过一门编程语言,想要快速入门PHP的人。3.基本上看完本文即可入门,可以动手实践或是进阶。简介PHP是HypertextPreprocessor(超文本预处理器)的......
  • phpstudy apache跨域访问设置
    phpstudyapache跨域访问设置 HeaderaddAccess-Control-Allow-Origin*HeaderaddAccess-Control-Allow-Methods*HeaderaddAccess-Control-Allow-Headers"Origin,X-Requested-With,Content-Type,Accept,Authorization" ......
  • PHP 的 Websocket 客户端和服务器
     /*------------------------------------------------------*///--需要安装websocket,我用的是下面链接提供的//--https://github.com/Textalk/websocket-php/*------------------------------------------------------*///客户端require('vendor/autoload.php');$c......
  • 唱衰这么多年,PHP 仍然还是你大爷!
    PHP是个庞然大物。尽管有人不断宣称PHP“即将消亡”。但无法改变的事实是:互联网依然大量依赖PHP。本文将通过大量的数据和事实告诉你为何PHP仍然在统治着互联网,你大爷仍然还是你大爷。统计数据PHP仍然是首选编程语言根据W3Techs对全球前1000万个网站使用的编......
  • 直播平台源代码,自定义设置 View 四个角的圆角 以及边框的设置
    直播平台源代码,自定义设置View四个角的圆角以及边框的设置使用贝塞尔曲线 typedefNS_OPTIONS(NSUInteger,UIRectCorner){  UIRectCornerTopLeft   =1<<0,  UIRectCornerTopRight  =1<<1,  UIRectCornerBottomLeft =1<<2,  UIRectCo......
  • 基于yii2的php后台快速构建框架(Yii Manager)
    文档:文档地址:https://www.kancloud.cn/cleverstone/ymb2         简介: YiiManager2.0简单介绍YiiManager2.0是基于PHP框架yii2.0为底层框架编写的,敏捷、灵活、低代码的快速开发框架!-YiiManager2.0是YiiManager1.0的升级版,废弃了1.0......
  • 谁将是年度编程霸主?PHP 真的跌出神坛
    全球知名TIOBE编程语言社区发布的12月编程语言排行榜,有几件有趣的现象,随着小编一起看看~下个月,TOIBE年度编程语言就会公布了!该奖项是授予2021年增长最快的编程语言,目前,C#最有可能获得年度编程语言,有趣的是,在过去的21年里,C#里从来没有获得过“TIOBE索引年度编程语言奖”,尽管它在......
  • PHP 操作redis 详细讲解转的
    phpredis是redis的php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:https://www.clw9335.com/gl/719374.html下载地址如下:https://github.com/owlient/phpredis(支持redis2.0.4)Redis::__construct构造函数$redi......