我的fastcgi nginx设置和Django出现了500个服务器错误。问题似乎与在管理站点中保存模型/条目有关。问题似乎是重定向上的路径似乎是错误的,因此django无法处理它们并且它会崩溃。这是我的nginx配置:
server {
listen 80;
rewrite ^/(.*) http://www.xxxxxx/$1 permanent;
server_name sxxxxxxx;
}
server {
listen 80;
server_name www.xxxxx
access_log /srv/www/sxxxxxx/logs/nginx_access.log;
error_log /srv/www/sxxxxxxx/logs/nginx_error.log;
location /media {
root /srv/www/sxxxxx/public_html/section9/static/;
}
location / {
root /srv/www/sxxxxxx/public_html/section9;
fastcgi_pass unix:/tmp/section9.sock;
#include fastcgi.conf;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_SOFTWARE "nginx";
fastcgi_param GATEWAY_INTERFACE "CGI/1.1";
fastcgi_param UID_SET $uid_set;
fastcgi_param UID_GOT $uid_got;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}
}
以下是错误消息:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/pymodules/python2.6/django/contrib/admin/options.py", line 252, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/django/contrib/admin/sites.py", line 186, in inner
return view(request, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/django/db/transaction.py", line 240, in _commit_on_success
res = func(*args, **kw)
File "/usr/lib/pymodules/python2.6/django/contrib/admin/options.py", line 819, in change_view
obj = self.queryset(request).get(pk=unquote(object_id))
File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 299, in get
clone = self.filter(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 498, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 516, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/usr/lib/pymodules/python2.6/django/db/models/sql/query.py", line 1675, in add_q
can_reuse=used_aliases)
File "/usr/lib/pymodules/python2.6/django/db/models/sql/query.py", line 1614, in add_filter
connector)
File "/usr/lib/pymodules/python2.6/django/db/models/sql/where.py", line 56, in add
obj, params = obj.process(lookup_type, value)
File "/usr/lib/pymodules/python2.6/django/db/models/sql/where.py", line 269, in process
params = self.field.get_db_prep_lookup(lookup_type, value)
File "/usr/lib/pymodules/python2.6/django/db/models/fields/__init__.py", line 210, in get_db_prep_lookup
return [self.get_db_prep_value(value)]
File "/usr/lib/pymodules/python2.6/django/db/models/fields/__init__.py", line 361, in get_db_prep_value
return int(value)
ValueError: invalid literal for int() with base 10: '31/favicon.ico'
<WSGIRequest
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
META:{'CONTENT_LENGTH': '',
'CONTENT_TYPE': '',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': 'www.xxxxx',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1',
'PATH_INFO': u'/admin/portfolio/portfolioentry/31/favicon.ico/',
'QUERY_STRING': '',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': u'',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.0',
'wsgi.errors': <flup.server.fcgi_base.TeeOutputStream object at 0xa779e6c>,
'wsgi.input': <flup.server.fcgi_base.InputStream object at 0xa779c6c>,
- Hide quoted text -
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>
所以我似乎遇到了媒体问题。所有JS和CSS似乎都附加到现有的URL上,这表明{{MEDIA_URL}}或管理站点使用的任何指令在这个相当奇怪的情况下都不起作用。
我想指出,这似乎发生在具有tinymce插件的模型上,而不是其他网站上的
'PATH_INFO':你'/ admin / portfolio / portfolioentry / 31 / favicon.ico /',
显然上面的错误。我不知道为什么最近发生这种情况。可能是由于升级或类似。非常感谢任何其他建议。我想也许可以通过推荐人做些事情,但可能不会。