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

这篇具有很好参考价值的文章主要介绍了Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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.toymoban.com/news/detail-711088.html

到了这里,关于Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx配置 转发URL中包含特殊字符

    Nginx经常被用来作为代理服务器,可以有效的避免跨域问题。 老项目需要对接一个新的服务,但是存在跨域问题,然后就配置了一个代理 可是突然在某天,新接口出现了异常。接口报了400错误。 然后定位发现新接口url比较特殊还不能修改,在其他的地方也用了,整个URL中包

    2024年02月05日
    浏览(45)
  • Nginx详解 第三部分:Nginx高级配置(附配置实例)

    Nginx提供了一个状态页(status page),用于 查看服务器的运行状态信息 。 状态页将显示 当前活动连接数、接受的请求数、处理时间 等信息,这些信息对于了解服务器的运行状况和进行故障排查非常有用。 基于Nginx 模块 ngx_http_stub_status_module 实现,在编译安装nginx的时候需要

    2024年02月11日
    浏览(39)
  • linux系统nginx主配置和日志简述

    变量 说明 $remote_addr 远程地址:记录客户端ip $remote_user 远程客户:记录客户端用户名称 [$time_local] 本地时间:服务器自身时间 $request 请求:记录请求的URL和HTTP协议 $status 状态:记录请求状态 $body_bytes_sent 发送给客户端的字节数,不包括影响头的大小 $http_referer 引用:记录从

    2024年02月02日
    浏览(42)
  • Linux系统下安装配置nginx(保姆级教程)

    前景提要:本人小白一个,由于需要将前端的代码部署到服务器上,然后了解到了nginx,便开始了nginx安装配置的信息搜集和实践,经过屡次的失败,最后在b站上一个视频的带领下,成功完成。 一.依赖下载 yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel  示例如图

    2024年02月10日
    浏览(43)
  • linux安装nginx,配置系统文件,配置systemctl命令,亲测可用,

    先安装gcc-c++编译器 安装pcre包 安装zlib包 在/usr/local/创建nginx文件 进入nginx目录 下载nginx安装包 注:如果没有wget命令,就安装命令 解压安装包 执行以下三个命令 添加到系统服务中 最后加入配置 重载配置 添加systemctl命令 添加内容 重新加载系统服务 启动服务 停止服务 重启

    2024年02月02日
    浏览(60)
  • HTTP初识,fiddler的使用,URL各部分介绍,QueryString

    目录   一、什么是HTTP 二、抓包工具 三、请求的首行 URL 四、URL的各部分详细介绍 现在网页上,我们常见的是https,但是在二十年前是以http为主,这个协议也叫超文本传输协议,文本-字符串,“超文本”-图片/视频 HTTP响应:比如搜狗版的HTML,这个响应的内容,往往是一个htm

    2024年02月08日
    浏览(43)
  • Linux 安装 Nginx 并配置为系统服务(超详细)

    Nginx是一款卓越的高性能Web服务器,被广泛用于托管网站和应用程序。本文旨在为您提供详细的指南,帮助您在Linux系统上成功安装、配置和启动Nginx服务器。通过这一过程,您将了解如何将Nginx集成到您的系统中,以便轻松地托管您的网站和应用程序。 在开始安装Nginx之前,

    2024年02月05日
    浏览(44)
  • Linux下nginx配置、使用

    目录 一、概述    二、yum安装/rpm安装:nginx 三、nginx 配置文件修改 四、配置文件 基于不同端口号  基于不同IP地址 基于不同域名 一、概述     功能:web中间件、反向代理、缓存     特点:并发连接数高,单台主机并发可到达50000                只能解析静态页面   

    2024年02月07日
    浏览(39)
  • 配置自定义服务为linux系统服务

    背景 使用go语言写了一个测试环境部署上报的备份服务,以防因为主服务挂了影响部署操作。  想把这个 backup 服务设置了系统服务,如果因环境重启等异常,可以自动重启 使用的环境的Centos7 1、首先需要创建一个systemd unit存储配置文件 2、将上面配置放在指定目录下 RHEL 系

    2024年02月08日
    浏览(38)
  • Nginx配置只允许部分ip访问

           前几天解答一个需求,公司的服务器映射的外网ip被恶意的绑定了域名了,导致人家可以通过域名直接访问我们的测试服务,运营商觉得我们绑定未备案域名,联系我们让我们整改,简单的处理就是只允许通过外网ip访问,过滤掉域名访问方式。       简单处理如下:

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包