0

我在 Linux Debian 6 发行版上安装了新的 Satchmo 商店。标准 Django 开发服务器运行良好,但在生产模式下使用 nginx + FastCGI 一段时间后(或者看起来像在某些内存限制后会溢出) nginx 输出“502 Bad gateway”错误。

在日志文件中,我发现了这些行:

2011/12/02 02:38:57 [错误] 29894#0: *91439 recv() 在从上游读取响应标头时失败(104:对等方重置连接),客户端:2.95.158.164,服务器:my-secret- host.com,请求:“GET / HTTP/1.1”,上游:“fastcgi://unix:/var/run/www/file.sock:”,主机:“my-secret-host.com”

我在互联网上搜索了很多,发现 nginx 无法从我的 django fastcgi 服务器获得正确的响应。我尝试了 django 服务器的不同设置(maxchildren、maxrequests),但错误仍然存​​在(结论是更高的值 - 更长的寿命没有错误)。设置 maxchildren=3 maxrequests=10 错误会在 5-10 次页面刷新后随机出现,在 15 次刷新后它总是出现。

我还发现,当我评论一些 satchmo 源代码行时,错误消失了。这很奇怪,因为它对于正确的工作商店来说非常重要。我认为这可能是问题原因的线索。差异在这里:http ://dpaste.com/hold/664978/

如果我愿意,问题就会消失:

  • PAYMENT_PROCESSOR=True在我唯一的支付模块中注释掉一行。
  • 注释掉config_register(MultipleStringValue(SHIPPING_GROUP, ...)_shipping/config.py

我认为这些行导致我的生产服务器崩溃的真正原因。我怎样才能彻底解决这个问题?对我的调查有什么建议吗?

更新:

启用 satchmo 日志记录后,我发现此消息:

2011 年 12 月 5 日星期一 13:26:37 配置错误问题查找设置 SHOP.SHOW_SITE,服务器意外关闭连接这可能意味着服务器在处理请求之前或期间异常终止。

可能可以使用此处的配方解决此问题https://groups.google.com/group/satchmo-users/browse_thread/thread/506b3ad77e7a766e?hl=es&pli=1。我稍后会尝试这个。

4

2 回答 2

0

您应该查看您的 Satchmo 日志文件,看看是否有关于此崩溃原因的更多详细信息。您注释掉的项目不应防止崩溃,因此我怀疑您的部署设置还有其他问题。

另一个需要考虑的项目,您使用的是线程还是非线程 Fast-cgi?

于 2011-12-02T21:03:16.323 回答
0

这是由数据库连接问题引起的。

基本原理:错误消息“配置错误问题查找设置 SHOP.SHOW_SITE”的第一部分来自 livesettings。它通常是使用数据库的第一个模块。逗号“服务器意外关闭连接...”之后的第二部分是来自 Postgres 数据库客户端的关于连接到数据库服务器的消息。

数据库连接、活动连接数和数据库设置可以通过以下命令进行测试:

$ python manage.py dbshell

postgres=> select * from product_product;   -- something typical
postgres=> select * from pg_stat_activity;  -- active connections
postgres=> show all;                        -- show current db server settings
于 2012-04-18T08:29:40.113 回答