注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
编程开发
›
PHP
›
查看内容
返回列表
发新帖
Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置
狂吧
狂吧
当前离线
积分
18
6
主题
6
帖子
18
积分
新手上路
新手上路, 积分 18, 距离下一级还需 32 积分
新手上路, 积分 18, 距离下一级还需 32 积分
积分
18
发消息
显示全部楼层
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 域套接字没有内置的容错和重传机制。
来源:
https://www.cnblogs.com/phpphp/p/17761795.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
上一篇:
API接口:查询企业联系人邮箱及相关信息
下一篇:
千万级数据并发解决方案(理论+实战) 高并发解决思路 方案
发表于 2023-10-13 21:46:03
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表