网站制作 合肥,大连金州代做网站公众号,房地产 网站模板,营销型单页面网站概述
在实际的生产环境中遇到了实际需要解决的问题#xff0c;需要把服务部署的方式梳理出来#xff0c;在同一个服务器中部署多个PHP环境#xff0c;架构图如下#xff1a;
架构方案 在工作实践中遇到的很多问题的普遍性都是相通的#xff0c;公司运行的可新项目都是版…概述
在实际的生产环境中遇到了实际需要解决的问题需要把服务部署的方式梳理出来在同一个服务器中部署多个PHP环境架构图如下
架构方案 在工作实践中遇到的很多问题的普遍性都是相通的公司运行的可新项目都是版本比较低的需要一步一步去升级、优化也就是一点一点的分步骤优化有着诸多挑战技术人的成长就是敢于一步一步抽丝剥茧最后让架构变的丝滑。
依然使用Nginx作为链接PHP-FPM的Web服务器分别使用9000、9001、90002端口分别去搭建不同的版本的php-fpm设置Nginx不同的运行$document_root中这个是预设方案在实施过程中需要准备一些准备的知识谋定而后动。
php-fpm 全局配置
emergency_restart_threshold在指定的一段时间内如果失效的PHP_FPM子进程数超过这个值PHP_FPM主进程就优雅重启。
emergency_restart_threshold 10设定emergency_restart_interval设置采用的时间跨度。
emergency_restart_interval 0配置进程池
下面要详细介绍的是php-fpm的配置 user 拥有这个PHP-FPM进程池中的子进程系统用户要把这个设置的值设为运行PHP应用的非根用户名户名。 group 拥有这个PHP-FPM进程池中的子进程系统用户组。要把这个设置的值设为运行PHP应用的非根用户所属的用户组名。 listen PHP-FPM进程池监听的IP地址和端口号让PHP-FPM只接受Nginx从这里传入的请求。127.0.0.1:9000让指定的PHP-FPM进程池监听从本地端口9000进入的。可以使用任何大于1024且没被其他系统进程占用的端口号。 pm.max_children 这个设置设定任何时间点PHP-FPM进程池中最多能有多少个进程。 pm.start_servers 3 PHP-FPM启动时PHP-FPM进程池中立即可用的进程数。 pm.min_spare_servers PHP应用空闲时PHP-FPM进程池中可以存在的进程数量最小值。这个值一般比pm.start_servers设置的值一样用于确保新进入的Http请求无需等待PHP-FPM在进程池中重新初始化进程。 pm.max_spare_servers PHP应用空闲时PHP-FPM进程池中可以存在的进程数量最大值。 pm.max_requests 回收进程之前PHP_FPM进程池中各个进程最多能处理的Http请求数量。这个设置有助于避免PHP扩展库因编写拙劣而导致不断泄露内存。 showlog 这个设置的值是一个日志文件在文件系统中的绝对路径。这个日志文件用于记录处理时间超过n秒的Http请求信息以便找出PHP应用的瓶颈进行调试记住PHP_FPM进程池所属用户和用户组必须有这个文件的写权限。 request_showlog_timeout 如果当前Http请求的处理时间超过指定的值就把请求的回溯信息写入showlog设置指定的日志文件。
user nobodygroup nobodylisten 127.0.0.1:9000 pm.max_children 51pm.start_servers 3pm.min_spare_servers 2pm.max_spare_servers 4pm.max_requests 1000showlog /path/to/showlog.logrequest_showlog_timeout 5s有时间在更新同一个服务器上部署多个PHP版本的服务器的内容。