django-request / django-request

django-request is a statistics module for django. It stores requests in a database for admins to see, it can also be used to get statistics on who is online etc.

Home Page:https://django-request.readthedocs.org/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nginx + Gunicorn problem

zefoo opened this issue · comments

commented

I'm coming off 4 hours of troubleshooting an issue that seems very strange.

Here is my nginx config:

upstream mysite_staging {
    server unix:/home/www/mysite.com/mysite_staging/mysite-live.sock fail_timeout=0;
}

server  {
    listen  80;
    server_name  mysite-staging.com;
    client_max_body_size 10M;
    keepalive_timeout    15;
    allow  all;
    root  /home/www/mysite.com;
    access_log /var/log/nginx/mysite-staging.log combined;

    location / {
        proxy_redirect      off;
        proxy_set_header    Host                    $host;
        proxy_set_header    X-Real-IP               $remote_addr;
        proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Protocol    $scheme;
        proxy_pass          http://mysite_staging;
    }
    location /static/ {
        alias /home/www/mysite.com/mysite_staging/static/;
        access_log      off;
        log_not_found   off;
        gzip on;
        gzip_min_length  1100;
        gzip_buffers  4 32k;
        gzip_types    text/plain application/x-javascript text/xml text/css;
        gzip_vary on;
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
    if ($redir) {
        return 301 $redir;
    }
}

Here is my gunicorn init script:

description "Gunicorn application server running mysite website"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setuid matt
setgid www-data

env PATH=/home/www/mysite.com/venv/bin
chdir /home/www/mysite.com/mysite_staging
exec gunicorn --workers 1 --log-level=debug --bind unix: mysite-live.sock mysite.wsgi:application

The problem is with django-request in the installed apps and in middleware, it throws a 500 error.

I see this:

Request Method: | GET
-- | --
http://mysite-staging.com/
1.10.4
DataError
invalid input syntax for type inet: "b''" LINE 1: ...6:48:38.194955+00:00'::timestamptz, false, false, 'b'''''::i...                                                              ^

I guess my question is... can someone make sense of this? If I run python manage.py runserver.... it works fine. Something with the nginx + gunicorn set up seems to be causing an issue.

Here's the full stack trace:


Environment:


Request Method: GET
Request URL: http://mysite.com/

Django Version: 1.10.4
Python Version: 3.5.1
Installed Applications:
('mezzanine.boot',
mysite_theme',
 'anymail',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.redirects',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.sitemaps',
 'mezzanine.conf',
 'mezzanine.core',
 'mezzanine.generic',
 'mezzanine.pages',
 'mezzanine.blog',
 'mezzanine.forms',
 'mezzanine.galleries',
 'mezzanine.twitter',
 'mysite',
 'request',
 'compressor',
 'filebrowser_safe',
 'grappelli_safe',
 'django.contrib.admin',
 'django.contrib.staticfiles',
 'django_comments')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'mezzanine.core.request.CurrentRequestMiddleware',
 'mezzanine.core.middleware.RedirectFallbackMiddleware',
 'mezzanine.core.middleware.TemplateForDeviceMiddleware',
 'mezzanine.core.middleware.TemplateForHostMiddleware',
 'mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware',
 'mezzanine.core.middleware.SitePermissionMiddleware',
 'mezzanine.pages.middleware.PageMiddleware',
 'request.middleware.RequestMiddleware')



Traceback:

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

The above exception (invalid input syntax for type inet: "b''"
LINE 1: ...6:27:01.547331+00:00'::timestamptz, false, false, 'b'''''::i...
                                                             ^
) was the direct cause of the following exception:

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  131.                 response = middleware_method(request, response)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/request/middleware.py" in process_response
  41.         r.from_http_request(request, response)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/request/models.py" in from_http_request
  85.             self.save()

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/request/models.py" in save
  123.         super(Request, self).save(*args, **kwargs)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/base.py" in save
  796.                        force_update=force_update, update_fields=update_fields)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/base.py" in save_base
  824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/base.py" in _save_table
  908.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/base.py" in _do_insert
  947.                                using=using, raw=raw)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/query.py" in _insert
  1045.         return query.get_compiler(using=using).execute_sql(return_id)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
  1054.                 cursor.execute(sql, params)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/utils.py" in __exit__
  94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/utils/six.py" in reraise
  685.             raise value.with_traceback(tb)

File "/home/www/mysite.com/venv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

Exception Type: DataError at /
Exception Value: invalid input syntax for type inet: "b''"
LINE 1: ...6:27:01.547331+00:00'::timestamptz, false, false, 'b'''''::i...
                                                             ^
commented

#60 solved it.