好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php设置nginx超时 nginx超时时间设置建议

很多站长朋友们都不太清楚php设置nginx超时,今天小编就来给大家整理php设置nginx超时,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php504错误 2、 nginx 超时时间设置会把php任务停止吗 3、 如何解决nginx 504 Gateway Time-out错误 4、 真心求助.nginx错误 5、 nginx奇怪的超时110: Connection timed out php504错误

解决方式:

一般默认的fastcgi进程响应的缓冲区是8K,这时可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k,这表示设置fastcgi缓冲区为8块128k大小的空间。

当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点,例如设置成60秒:send_timeout 60;经过这两个参数的调整,一般不会再提示“504 Gateway Time-out”错误,问题基本解决。

有时候网站需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。而这时候Nginx 504 Gateway Time-out的含义就是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

解决方式:

更改php-fpm的几处配置即可:

把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;

把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

接着再更改nginx的几个配置项,减少FastCGI的请求次数,尽量维持buffers不变:

fastcgi_buffers由 4 64k 改为 2 256k;

fastcgi_buffer_size 由 64k 改为 128K;

fastcgi_busy_buffers_size 由 128K 改为 256K;

fastcgi_temp_file_write_size 由 128K 改为 256K。

重新加载php-fpm和nginx的配置,再次测试,如果没有出现“504 Gateway Time-out”错误,问题便解决了。

解决方式:

将php-fpm的处理方式改成apache模式即可。

nginx 超时时间设置会把php任务停止吗

工具原料:电脑+php nginx

nginx 超时时间是指程序运行超过这个时间就会停止运行

解决办法:将文件操作防御后台脚本处理去执行,过几分钟再进行下载并且删除暂存的文件即可.

伪代码的实现:

$file = TEMP_DIR.'/'.$filename;

$cmd = 'php '.ROOT_PATH.'/cron/xxx.php';

if (!file_exists($file)) {

//判断是否已经在后台执行

$count = exec('/bin/ps xaww | grep -v grep | grep "'. $cmd . '" |wc -l');

if (intval($count) == 0) {

//先检查有无数据

...

if (xxx) {

//退出操作

}

//异步执行

exec("{$cmd} {arguments}> /dev/null ");

}

echo '请10分钟后再刷新此页面';

exit;

} else {

//输出文件

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.$filename);

header('Content-Transfer-Encoding: binary');

header('Expires: 0');

header('Cache-Control: must-revalidate');

header('Pragma: public');

header('Content-Length: ' . filesize($file));

ob_clean();

flush();

readfile($file);

unlink($file);

exit;

}

//ps:脚本中可以用$argv接收参数

还有一种相对效率更高的形式是:通过swoole任务去执行,也可以减少脚本数量,提高代码维护成本

如何解决nginx 504 Gateway Time-out错误

情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成

这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

情况一解决办法:

默认的fastcgi进程响应的缓冲区是8K,我们可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k

这表示设置fastcgi缓冲区为8块128k大小的空间。

情况一解决办法(改进):

在上述方法修改后,如果还是出现问题,我们可以继续修改nginx的超时参数,将参数调大一点,如设置为60秒:

send_timeout 60;

经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。

情况二:PHP环境的配置问题

这里我们需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。

情况二解决办法( php-fpm配置修改):

将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。

将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率。

6

情况二解决办法(nginx配置修改):

为了减少fastcgi的请求次数,尽量维持buffers不变,我们要更改nginx的几个配置项,如下:

将fastcgi_buffers由4 64k改为2 256k;

将fastcgi_buffer_size 由64k改为128k;

将fastcgi_busy_buffers_size由128k改为256k;

将fastcgi_temp_file_write_size由128k改成256k。

7

情况二解决办法修改完,我们需要重新加载php-fpm和nginx的配置,然后再进行测试。之后就没有发现“504 Gateway Time-out”错误,效果也还是不错的!

真心求助.nginx错误

Nginx服务器错误一般有以下几点原因:

1、请求的header过大。nginx默认的header长度上限是4k,如果超过了这个值,nginx会直接返回400错误.

解决方法:配置nginx.conf相关设置。可以通过以下2个参数来调整header上限:

client_header_buffer_size 16k;large_client_header_buffers 4 16k。

2、上传文件过程中出现错误。这时浏览器显示“413 Request Entity Too Large”。这是因为没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M。

解决方法:增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制:设置允许发布内容为8M:client_max_body_size 8M;client_body_buffer_size 128k。

另外如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误:post_max_size = 8M;upload_max_filesize = 6M。

修改完配置后,别忘记重新加载。

3、客户端在为等到服务器相应返回前就关闭了客户端描述符。一般出现在客户端设置超时后,服务器主动关闭。

解决方法:根据实际Nginx后端服务器的处理时间修改客户端超时时间。

4、脚本错误(php语法错误、lua语法错误)。

解决方法:查看nginx_err_log php_err_log。

5、访问量过大,系统资源限制,不能打开过多文件。 磁盘空间不足。(access log开启可能导致磁盘满溢,服务器主动关闭)。

解决方法:修改/etc/sysctl.conf文件,并使用下面的命令确认: #sysctl -p。要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。

6、后端服务无法处理,业务中断。

解决方法:从后端日志获取错误原因,解决后端服务器问题。

7、后端服务器在超时时间内,未响应Nginx代理请求。

解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。

8、网站页面缓存过大。

解决方法:配置nginx.conf相关设置:fastcgi_buffers 8 128k;send_timeout 60。

nginx奇怪的超时110: Connection timed out

很明显是架构问题,nginx本身可能也存在原因,而不是后端,不然另一台nginx就也会爆超时,那么你的2个nginx是做反向代理到后方对吧,你的业务会话超时时间是多少,这个可能要问研发,当nginxA收到数据向后发送代理时,开始进行会话传输,假如说会话超时是10S,断开后,经过5S,数据又到nginxB了,那么先前的会话并没有断开,你再去连肯定会超时,所以解决方案就是看下会话时间还有nginx的会话保持时间是多少,建议改成0或者自己调节,默认记得keepalive_timeout是60,如果架构是一台nginx做反向代理,基本没有这个问题。可能我理解也有不对

关于php设置nginx超时的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php设置nginx超时 nginx超时时间设置建议的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did210158
更新时间:2023-05-03   阅读:142次

上一篇: sql原生语句php 原生sql比orm性能好

下一篇:javaphp并发 java并发编程详解

相关资讯

最新资料更新

  • 1.phpjson提交 phppost提交
  • 2.php链接数据库创建表格 php连接数据库的方法
  • 3.php数据导出csv php导出大量数据
  • 4.php支付源码 php支付平台
  • 5.php赋值后改变 php变量赋值
  • 6.php如何页面静态化 php实现页面静态化
  • 7.php单个会话内存 php会话保存数据的两种方式是
  • 8.php变下载文件 php 下载文件
  • 9.php防止ajax接口 php防止接口多次请求
  • 10.php体彩投注 体彩官方投注
  • 11.token验证php Token验证失败异地登陆什么意思
  • 12.node会取代php nodejs会被deno取代吗
  • 13.phpurl链接解析 php解析url
  • 14.phpvc6vc9的简单介绍
  • 15.jq调用php数据 php100 jquery教程
  • 16.php包含eaplay吗 php是否包含
  • 17.链式作用域php php 链式调用
  • 18.学php学什么专业 学php可以干什么工作
  • 19.php保存用户信息 php登录成功保存session
  • 20.关于PHPchmod的信息

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]