nginx和php-fpm连接超时的相关配置以及Nginx中的try_files以及root、alias的使用
一、nginx和php-fpm连接超时的相关配置
线上的PHP服务器架构大都是nginx proxy->nginx web->php-fpm。在服务器运行正常,服务器之间的连接正常,未被防火墙阻止的情况下,对这种架构排查504报错时需要注意以下几个地方的参数。
1是nginx proxy服务器中nginx.conf配置文件里的三项proxy..timeout配置。
此配置表示proxy向上游请求时的超时时间,s为秒。
proxy_connect_timeout 30s; #nginx连接上游的proxy的超时时间
proxy_send_timeout 30s; #nginxt往上游proxy发送数据的超时时间
proxy_read_timeout 30s; #nginxt从上游proxy读取数据的超时时间
2是nginx web服务器中nginx.conf配置里的fastcgi..timeout超时配置,
此配置表示nginx向上游php请求的超时时间,s为秒。
fastcgi_connect_timeout 30s; #nginx连接fastcgi的超时时间
fastcgi_send_timeout 30s; #nginx往fastcgi发送参数的超时时间
fastcgi_read_timeout 30s; #nginx从fastcig获取数据的超时时间
3是php-fpm配置中的request_terminate_timeout配置
此配置表示多少秒之后php-fpm会终止对应的php子进程。request_terminate_timeout。这个配置属于php-fpm,控制的是一个request执行的最长时间,超过这个时间worker进程将被killed。
request_terminate_timeout=120s
在后端执行时间超过请求方的时间设定时间时,请求方会主动断开连接,后端服务器日志会记录499,关于499的报错这里不再展开,之前也有篇文章 nginx出现499错误码的原因以及proxy_ignore_client_abort配置 及 nginx日志配置变量大全意义详解_nginx 499-CSDN博客 服务端可以通过设置proxy_ignore_client_abort on来忽略客户端中断请求,从而不再记录499日志,改为200,但这样只是让表象上看起来请求正常,前端还是请求超时了的。
在解决服务器超时的问题时,首先按照上面的这些配置项去逐一排查,如果一切没问题,直接请求服务器时理论是OK的了,这时如果再有超时问题,需要排查域名解析到你的服务器的中间环节会不会有超时设置问题,比如CDN上的回源请求超时等待时间以及其它的中间负载均衡出的问题。
二、Nginx中的try_files以及root、alias的使用
nginx的try_files基本是nginx配置中必定用到的一个命令,但如果没有深入了解,也许你就只知道默认配置文件中的那行代码,就是尝试请求一下uri,然后如果没有找到就转到程序框架的入口文件上。try_files的作用域在server、location,其语法如下:
#语法1,一直寻找文件,找不到定义的uri上。
try_files file ... uri
#语法2,一直寻找文件,找不到就返回一个状态码
try_files file ... = code
#示例
index index.html index.php;
try_files $uri /cache/ /data/files/ $uri /app.php;
try_files $uri /cache/ /data/files/ $uri =404;
如上示例中,我们向服务端发送一个请求拿程序生成的一个图片/makejpg/102.jpg,它将先检查WEB目录 下/makejpg/102.jpg图片文件是否存在 ,如果不存在检测设定的root下/cache/makejpg/102.jpg 之后没有再请求root下 /data/files/makejpg/102.jpg ,最后没有的话就去请求/app.php去生成102.jpg这么一张图片。下面一个请求如果是静态服务器则没找到就直接返回404了。
try_files除了上述在此服务器寻找文件以及找到请求处理之外,也可以直接重定向其它的location,其它的location就可以自由配置处理了,甚至可以转发到upstream请求,纯缓存服务器配置这种比较合适,即所有的数据都是后端生成的,经过一次就缓存下来,如果缓存失效就去后端拿数据。有点CDN的感觉。
location ^~ /images/ {root /image/cache/;try_files $uri @image_backend;
}
location @image_backend {proxy_pass http://192.168.1.10:80;
}
最后上面提到的try_files查找路径的事情,nginx中对路径的指令有root和alias,root会持续继成,在location中匹配后,会将匹配的location中的root路径替换访问url的host从而得到文件的真实地址。而alise它不会替换匹配后的url地址,而是替换匹配部分的url。alias指令也可以有多个,有些配置中使用alias会省不少事,示例如下:
#请求http://47.3.3.36/mobile/index.php -> /home/wwwroot/mobile/index.php
location /mobile/ {root /home/wwwroot/
}#请求http://47.3.3.36/mobile/index.php -> /home/wwwroot/mobile/index.php
location /mobile/ {alias /home/wwwroot/mobile/
}相关文章:
nginx和php-fpm连接超时的相关配置以及Nginx中的try_files以及root、alias的使用
一、nginx和php-fpm连接超时的相关配置 线上的PHP服务器架构大都是nginx proxy->nginx web->php-fpm。在服务器运行正常,服务器之间的连接正常,未被防火墙阻止的情况下,对这种架构排查504报错时需要注意以下几个地方的参数。 1是nginx…...
在MAC中Ollama开放其他电脑访问
ollama安装完毕后默认只能在本地访问,之前我都是安装其他的软件之后可以结合开放其他端口访问,其实是可以新增或修改下电脑的系统配置,就可以打开端口允许除本机IP或localhost访问。 步骤如下: 1、查看端口(默认是&…...
NE555芯片制作的节拍器
NE555芯片的节拍器,以一定的频率发出声音和闪烁灯光,起到节拍指示的作用。...
如何使用 Next.js 进行服务端渲染(Server-Side Rendering, SSR)
文章目录 前言步骤 1: 创建 Next.js 应用步骤 2: 创建页面组件示例页面组件 步骤 3: 自定义 _app.js 文件步骤 4: 自定义 _document.js 文件步骤 5: 运行应用步骤 6: 构建和部署总结 前言 Next.js 本身就支持 SSR 并提供了一系列内置的方法来简化这个过程。下面将详细介绍如何使…...
【machine learning-八-可视化loss funciton】
可视化lossfunction loss funciton可视化损失函数等高图 loss funciton 上一节讲过损失函数,也就是代价函数,它是衡量模型训练好坏的指标,对于线性回归来说,模型、参数、损失函数以及目标如下:、 损失函数的目标当然…...
Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
1.引入依赖: implementation pub.devrel:easypermissions:3.0.0 2.在BaseActivity处理统一的结果回调和请求Code 核心内容: (1)处理Activity本身继承的方法onRequestPermissionsResult (2)实现接口EasyPermissions.PermissionCallbacks来接收请求结果 (3)定义申请权…...
我的AI工具箱Tauri版-VideoReapeat视频解说复述克隆
本教程基于自研的AI工具箱Tauri版进行VideoReapeat视频解说复述克隆。 VideoReapeat视频解说复述克隆 是自研的AI工具箱Tauri版中的一款专用模块,旨在通过AI技术对视频解说内容进行复述和克隆。该工具可自动洗稿并重新生成视频解说,通过简单配置即可对大…...
MySQL5.7.42高可用MHA搭建及故障切换演示
系列文章目录 rpmbuild构建mysql5.7RPM安装包 MySQL基于GTID同步模式搭建主从复制 文章目录 系列文章目录前言一、MHA架构介绍1.MHA的功能2.MHA组成3.MHA故障转移过程4.MHA架构优缺点 二、环境准备1.服务器免密2.基于GTID主从复制搭建3.下载mha组件 三、MHA组件安装1.安装依赖…...
快速搭建最简单的前端项目vue+View UI Plus
1 引言 Vue是一套用于构建Web前端界面的渐进式JavaScript框架。它以其易学易用、性能出色、灵活多变而深受开发者喜爱,并且与其他前端框架(如React和Angular)相比,在国内市场上受到了广泛的认可和使用。点击进入官方…...
倍增练习(1)
A - ST 表 && RMQ 问题 题目思路:st表的板子题用于静态区间求最值,通过倍增的思想,先通过预处理将各个区间的最大值通过转移式求出f[i][j] max(f[i][j - 1], f[i (1 << (j - 1))][j - 1]);然后再进行重叠查询查询,k log2(r - l 1);,max(f[l][k], f[r - (1 &l…...
MATLAB 在数学建模中的深入应用:从基础到高级实践
目录 前言 一、MATLAB基础知识 1.1 MATLAB工作环境简介 1.1.1 命令窗口(Command Window) 1.1.2 工作区(Workspace) 1.1.3 命令历史(Command History) 1.1.4 编辑器(Editor) 1…...
Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】
Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】 目录 Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】 一、简单介绍 二、 Unity 设计模式 1、Unity 开发中使用设计模式的特点 2…...
[数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):802 标注数量(xml文件个数):802 标注数量(txt文件个数):802 标注类别…...
飞驰云联FTP替代方案:安全高效文件传输的新选择
FTP协议广泛应用各行业的文件传输场景中,由于FTP应用获取门槛低、使用普遍,因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变,FTP在传输安全性与传输性能上有所欠缺,无法满足企业现在的高…...
Hive内置集合函数-size,map_keys,map_values,sort_array,array_contains
1. Hive内置Collection Functions 以下函数为Hive是提供的内置集合函数: 返回类型函数(签名)函数说明intsize(Map<K.V>)Returns the number of elements in the map type.intsize(Array)Returns the number of elements in the array type.arraymap_keys(Map<K.V>…...
Exchange Online 计划 2 部署方案
目录 前言 一、前期准备 1. 了解 Exchange Online 计划 2 的功能 2. 系统要求 3. 网络要求 4. 账户和许可 二、安装和配置 Exchange Online 计划 2 1. 注册 Microsoft 365 订阅 2. 验证域 3. 用户和许可证分配 4. 迁移现有邮箱 迁移步骤 三、配置 Exchange Online …...
图数据库的力量:深入理解与应用 Neo4j
图数据库的力量:深入理解与应用 Neo4j 文章目录 图数据库的力量:深入理解与应用 Neo4j1、什么是 Neo4j?版本说明 2、Neo4j 的部署和安装Neo4j Web 工具介绍 3、体验 Neo4j加载数据查询数据数据结构 4、Cypher 入门创建数据查询数据关系深度查…...
Deutsch intensiv C1 Schreiben
Deutsch intensiv C1 Schreiben Part A1, Kasten Part A 1, Kasten (1)zeigt (A) (2)gibt Auskunft ber (A)/darber (3)liefert Daten/Informationen ber(A)/darber (4)stellt(A) dar...
大数据新视界 --大数据大厂之DevOps与大数据:加速数据驱动的业务发展
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
实战OpenCV之图像阈值处理
基础入门 图像阈值处理是一种二值化技术,它基于预设的阈值,可以将图像中的像素分为两大类:一大类是背景,另一大类是前景或目标对象。这个过程涉及将图像中的每个像素值与阈值进行比较,并根据比较结果决定保留原始值还是…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...
Qt的学习(二)
1. 创建Hello Word 两种方式,实现helloworld: 1.通过图形化的方式,在界面上创建出一个控件,显示helloworld 2.通过纯代码的方式,通过编写代码,在界面上创建控件, 显示hello world; …...
