Nyx*_*nyx 109 php fastcgi nginx
当我的PHP脚本运行时间超过平常时,我从nginx收到504超时消息.set_time_limit(0)似乎并没有阻止这一点!在nginx上运行php5-fpm时它不起作用吗?如果是这样,那么设定时限的正确方法是什么?
错误:
504 Gateway Time-out
nginx/1.2.7
Run Code Online (Sandbox Code Playgroud)
pym*_*kin 185
有几种方法可以设置php-fpm的超时.在/etc/php5/fpm/pool.d/www.conf我添加这一行:
request_terminate_timeout = 180
Run Code Online (Sandbox Code Playgroud)
此外,在/etc/nginx/sites-available/default我将以下行添加到相关服务器的位置块:
fastcgi_read_timeout 180;
Run Code Online (Sandbox Code Playgroud)
整个位置块看起来像这样:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 180;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
现在只需重新启动php-fpm和nginx,对于少于180秒的请求,不应再有超时.
arp*_*arp 48
试试这个链接,它有一个更好的解决方案来解决这个问题.所以步骤是:
nginx.conf位于/etc/nginx目录中的文件.在下面的部分下面添加以下代码http {:
client_header_timeout 3000;
client_body_timeout 3000;
fastcgi_read_timeout 3000;
client_max_body_size 32m;
fastcgi_buffers 8 128k;
fastcgi_buffer_size 128k;
Run Code Online (Sandbox Code Playgroud)
注意:如果已存在,请更改值.
重新加载Nginx和php5-fpm.
$ service nginx reload
$ service php5-fpm reload
Run Code Online (Sandbox Code Playgroud)
如果错误仍然存在,请考虑增加值.
Bar*_*art 10
您不能使用PHP来防止nginx发出的超时.
要配置nginx以允许更多时间,请参阅proxy_read_timeout指令.
在这种情况下可能发生三种超时。可以看出,每个答案都只关注这些可能性的一个方面。所以,我想把它写下来,这样将来来这里的人就不需要在不知道哪个有效的情况下随机检查每个答案并获得成功。
因此,每个问题的修复如下。
$.ajax({
url: "test.html",
error: function(){
// will fire when timeout is reached
},
success: function(){
//do something
},
timeout: 3000 // sets timeout to 3 seconds
});Run Code Online (Sandbox Code Playgroud)
nginx 客户端超时
http{
#in seconds
fastcgi_read_timeout 600;
client_header_timeout 600;
client_body_timeout 600;
}
Run Code Online (Sandbox Code Playgroud)nginx 代理服务器超时
http{
#Time to wait for the replying server
proxy_read_timeout 600s;
}
Run Code Online (Sandbox Code Playgroud)因此,请使用您需要的那个。也许在某些情况下,您需要所有这些配置。我需要。
sudo nano /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)
将这些变量添加到nginx.conf文件中:
http {
# .....
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
Run Code Online (Sandbox Code Playgroud)
然后重启:
service nginx reload
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
212892 次 |
| 最近记录: |