我在使用SagePay作为支付网关的电子商务网站时遇到了一些问题。有些付款正在完成,有些则没有,并且用户似乎正在出现的错误是内部服务器错误或502错误网关错误。
我查看了服务器日志(特别是proxy_error_log),发现每个失败的事务都在日志中显示错误,如下所示:
2014/12/02 04:24:11 [错误] 9179#0:* 70668上游从上游读取响应头时发送了太大的头...
在做了一些挖掘后,我发现据说编辑代理缓冲区大小似乎可以解决它。我已将以下代码添加到/etc/nginx/nginx.conf中:
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
第二步是将另一个代码块添加到vhost文件中的位置〜.php $ {}块中:
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
但是,vhost文件包含以下文本:
注意!
请勿修改此文件,因为它是自动生成的, 因此,您所有的更改都将在下一个时间内丢失文件。
任何想法为什么会这样说,有没有办法绕过它?!
答案 0 :(得分:1)
如果你正在使用Plesk 11,你可以通过Plesk面板为每个vhost添加额外的nginx指令。
转到域名> example.co.uk> Web服务器设置。
在本页底部是一个textarea标有"附加nginx指令"你可以在哪里插入你的指令。单击“确定”,Plesk将重新启动Web服务器,指令将生效
要在php位置块中添加fastcgi指令,您需要在附加的nginx指令textarea中添加类似这样的内容:
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
location ~ .php$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}