【问题标题】:Django SSL errorDjango SSL 错误
【发布时间】:2010-10-26 12:23:11
【问题描述】:

我似乎收到了这个错误,不知道如何调试它。 任何指针?

Traceback(最近一次通话最后一次):

 File "/opt/python2.6/lib/python2.6/site-packages/django/core/handlers/base.py", line 92, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/www/django_test1/omu2/views.py", line 26, in frontIndex
   context_instance=RequestContext(request))

 File "/opt/python2.6/lib/python2.6/site-packages/django/shortcuts/__init__.py", line 20, in render_to_response
   return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/loader.py", line 108, in render_to_string
   return t.render(context_instance)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
   return node.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/loader_tags.py", line 97, in render
   return compiled_parent.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
   return node.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/loader_tags.py", line 24, in render
   result = self.nodelist.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
   return node.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 946, in render
   autoescape=context.autoescape))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
   return node.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/defaulttags.py", line 243, in render
   return self.nodelist_true.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
   return node.render(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/defaulttags.py", line 155, in render
   nodelist.append(node.render(context))

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 826, in render
   output = self.filter_expression.resolve(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 546, in resolve
   obj = self.var.resolve(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 687, in resolve
   value = self._resolve_lookup(context)

 File "/opt/python2.6/lib/python2.6/site-packages/django/template/__init__.py", line 716, in _resolve_lookup
   current = getattr(current, bit)

 File "/opt/python2.6/lib/python2.6/site-packages/django_imagekit-0.3.3-py2.6.egg/imagekit/specs.py", line 94, in url
   self._create()

 File "/opt/python2.6/lib/python2.6/site-packages/django_imagekit-0.3.3-py2.6.egg/imagekit/specs.py", line 66, in _create
   self._obj._storage.save(self.name, content)

 File "/opt/python2.6/lib/python2.6/site-packages/django/core/files/storage.py", line 46, in save
   name = self.get_available_name(name)

 File "/opt/python2.6/lib/python2.6/site-packages/django/core/files/storage.py", line 71, in get_available_name
   while self.exists(name):

 File "/opt/python2.6/lib/python2.6/site-packages/cumulus/storage.py", line 147, in exists
   self._get_cloud_obj(name)

 File "/opt/python2.6/lib/python2.6/site-packages/cumulus/storage.py", line 99, in _get_cloud_obj
   return self.container.get_object(name)

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/utils.py", line 43, in decorator
   return f(*args, **kwargs)

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/container.py", line 316, in get_object
   return Object(self, object_name, force_exists=True)

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/storage_object.py", line 89, in __init__
   if not self._initialize() and force_exists:

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/storage_object.py", line 462, in _initialize
   'HEAD', [self.container.name, self.name]

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/connection.py", line 200, in make_request
   response = retry_request()

 File "/www/django_test1/omu2/src/python-cloudfiles/cloudfiles/connection.py", line 194, in retry_request
   return self.connection.getresponse()

 File "/opt/python2.6/lib/python2.6/httplib.py", line 974, in getresponse
   response.begin()

 File "/opt/python2.6/lib/python2.6/httplib.py", line 391, in begin
   version, status, reason = self._read_status()

 File "/opt/python2.6/lib/python2.6/httplib.py", line 349, in _read_status
   line = self.fp.readline()

 File "/opt/python2.6/lib/python2.6/socket.py", line 397, in readline
   data = recv(1)

 File "/opt/python2.6/lib/python2.6/ssl.py", line 96, in <lambda>
   self.recv = lambda buflen=1024, flags=0: SSLSocket.recv(self, buflen, flags)

 File "/opt/python2.6/lib/python2.6/ssl.py", line 222, in recv
   raise x

SSLError: The read operation timed out

【问题讨论】:

    标签: django apache mod-wsgi imagekit django-imagekit


    【解决方案1】:

    我是 django-cumulus 的作者。 Cloud Files 因 SSL 连接问题而臭名昭著。 django-cumulus 有一个名为 CUMULUS_TIMEOUT 的设置(在 0.3.6 中添加),默认为 5 秒。您可以将其增加到 10 或 15 来尝试缓解这种情况。

    请参阅https://github.com/richleland/django-cumulus/issues/5 了解更多信息,如果您仍然遇到问题,请随时在此处发布问题。

    【讨论】:

      【解决方案2】:

      从外观上看,我会说与 Rackspace Cloudfiles 的连接超时。 Imagekit 动态构建缩略图(我相信它在_create() 中是这样做的),但是还有一个选项可以在保存模型时创建所有缩略图,而不是在渲染时创建。如果 Rackspace 出现故障,这不会真正帮助您,但它会帮助减少渲染模板所需的时间。

      编辑: 要预先缓存您的缩略图,您需要更改您的 ImageSpec 定义以包含 pre_cache = True,例如(来自 imagekit wiki):

      from imagekit.specs import ImageSpec 
      
      class Thumbnail(ImageSpec): 
          access_as = 'thumbnail_image' 
          pre_cache = True 
      

      如果您更改规格,您可以使用ikflush 管理命令重新构建所有缓存的缩略图。您应该注意,虽然这将创建 pre_cache = True 所在的所有缩略图,但同时也会删除 pre_cache = False 所在的所有缓存图像。

      【讨论】:

      • 感谢您的浏览!我不知道你可以设置它来做到这一点,你需要修改哪些设置?
      • @ApPel 我已经更新了我的答案以包含有关使用 django-imagekit 预缓存缩略图的信息。
      • 感谢您的回复,尽管我似乎已经预先缓存了图像,这意味着它们确实位于服务器上。我有一个基本规格服务器 256 等,这可能是一个问题吗?
      • @ApPel - 它们被预先缓存很好,但不幸的是,这意味着您的问题与使用云文件更相关。 Imagekit 仍将检查文件是否存在,这意味着向 Cloud Files 发出请求。如果 Cloud Files 已关闭或无响应,那么您将遇到此问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 2018-10-19
      • 2011-03-18
      • 2015-03-08
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多