中国投资网 百科 nginx解决跨域问题(我解决了这个问题作文)

nginx解决跨域问题(我解决了这个问题作文)

基本上在centos下配置lnmp组合都是用同一个配置文件,从来没出过问题。但是最近在一个vps上安装了同样的环境后,网站上10多人开始打开非常慢。有几次直接达到了nginx中设置的脚本最大超时时间300秒。结果nginx向客户端浏览器发送了一个504网关超时错误代码,经过分析,更改了几个配置文件。

从错误码来看,基本可以确定与nginx本身无关,主要是提交给php-fpm的请求未能被正确反馈。一般在提交动态请求时,nginx会直接将请求转发给php-fpm,PHP-fpm再重新分配php-cgi进程处理相关请求,然后依次返回。最后,nginx会将结果反馈给客户端浏览器。但是,我的vps目前运行的是纯php应用内容。事实上,所有用户的请求都是php请求,其中一些请求需要很长时间,php-cgi进程总是被用完。但是php- fpm本身的配置文件只开放10组php-cgi进程,这样如果在线用户多一点,请求就不能正常处理,就会出错。

分析了最初的原因后,更容易做到以下几点。首先,改变php-fpm的几个配置:

把max_children从之前的10个改成现在的30个,这样可以用足够多的php-cgi进程;

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

然后改变nginx的几个配置项,减少FastCGI的请求数量,尽量保持缓冲区不变:

Fastcgi_buffers从4 64k更改为2 256k;

fastgi _ buffer _ size由64k改为128K;

fastgi _ busy _ buffers _ size从128K更改为256K;

fastgi _ temp _ file _ write _ size从128K更改为256K。

好了,重新加载php-fpm和nginx的配置,再次测试。到现在两周没有504网关超时,就是这个结果。

另外,php-fpm默认的静态处理模式会使php-cgi的进程长时间占用内存而无法释放,这也是nginx出错的原因之一,所以可以将php-fpm的处理模式改为apache模式。

value name=' style ' Apache-like/value

从更改到现在的测试表明,上述方法效果还是比较明显的,没有发现Nginx502坏网关或504网关超时错误。当然,如果你的VPS或者服务器的性能足够好,也不必根据具体情况做不必要的改动。

本文来自网络,不代表本站立场,转载请注明出处:https:

nginx解决跨域问题(我解决了这个问题作文)

中国投资网后续将为您提供丰富、全面的关于nginx解决跨域问题(我解决了这个问题作文)内容,让您第一时间了解到关于nginx解决跨域问题(我解决了这个问题作文)的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。