标签: gunicorn

gunicorn和websockets

我正在尝试运行http://www.gelens.org/code/gevent-websocket/并继续收到以下错误.

socket_id=1 already closed.
    result = self._run(*self.args, **self.kwargs)
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/gevent/pywsgi.py", line 571, in handle
    handler.handle()
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/gevent/pywsgi.py", line 180, in handle
    result = self.handle_one_request()
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/gevent/pywsgi.py", line 314, in handle_one_request
    self.handle_one_response()
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/geventwebsocket/handler.py", line 26, in handle_one_response
    return self._handle_websocket()
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/geventwebsocket/handler.py", line 50, in _handle_websocket
    self.log_request()
  File "/home/walt/virtualenv/ws/local/lib/python2.7/site-packages/gevent/pywsgi.py", line 394, in log_request
    log.write(self.format_request() + '\n')
AttributeError: 'Logger' object has no attribute 'write'
Run Code Online (Sandbox Code Playgroud)

我在Mint Linux上运行python 2.7.2

python websocket gevent gunicorn

3
推荐指数
1
解决办法
3684
查看次数

Heroku应用程序在本地运行,但得到H12超时错误(使用包)

类似的问题已被提出,但H12似乎是由许多事情引起的,这里没有一个答案适用.我之前用heroku构建了python应用程序,但现在我正在使用Miguel Grinberg的Flask Mega-Tutorial的包结构,我无法弄清楚出了什么问题.

我的应用程序是python/Flask/SQLAlchemy,带有Heroku postgres数据库.该应用程序完全在本地工作 当我推到Heroku时,我得到了H12.

这是我的app结构:

  rootappdirectory\
      app\
        static\
        templates\
        __init__.py
        views.py
        models.py
      run.py
      [plus flask / venv files]
Run Code Online (Sandbox Code Playgroud)

run.py看起来像这样:

import os
from flask import Flask

from app import app
app.run()
Run Code Online (Sandbox Code Playgroud)

而app/__ init__.py看起来像这样:

(a bunch of imports)

app = Flask(__name__)
db = SQLAlchemy(app)

login_manager = LoginManager()
(a bunch of login_manager stuff)

from app import views, models
Run Code Online (Sandbox Code Playgroud)

我的Procfile是 web: gunicorn run:app

我在本地和远程使用heroku数据库.该应用程序在我的本地计算机上完美运行(0.0.0.0:5000).但是,当我推送到heroku并运行应用程序时,这是日志:

2013-04-15T06:50:27.165532+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=/favicon.ico host=floating-driftwood-6203.herokuapp.com fwd="24.6.48.240" dyno=web.1 connect=1ms service=30007ms status=503 bytes=0
2013-04-15T06:50:34.908756+00:00 …
Run Code Online (Sandbox Code Playgroud)

python heroku flask gunicorn

3
推荐指数
1
解决办法
3501
查看次数

django + gunicorn + nginx配置上的坏网关

当我尝试访问我的网站时,我只看到502错误.这是我的nginx配置:

upstream pzw_server {
#   server unix:/home/pzw/pzw/run/gunicorn.sock fail_timeout=0;
    server 127.0.0.1:8000 fail_timeout=0;
}

server {
    listen 80;
    server_name my_server_ip_addr;

    client_max_body_size 4G;

    access_log /home/pzw/pzw/log/nginx-access.log;
    error_log /home/pzw/pzw/log/nginx-error.log;

    location /static/ {
        alias /home/pzw/pzw/static/;
    }

    location /media/ {
            alias /home/pzw/pzw/media/;
    }

    location / {
            try_files $uri @proxy;
    }

    location @proxy {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://my_server_ip_addr;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的Gunicorn启动脚本:

#!/bin/bash

NAME='app_name'
DJANGODIR=/home/pzw/pzw
SOCKFILE=/home/pzw/pzw/run/gunicorn.sock
USER=pzw
GROUP=pzw
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=app_name.settings
VIRTENVDIR=/home/pzw/.virtualenvs/pzw


echo "STARTING $NAME"

cd $DJANGODIR
source "${VIRTENVDIR}/bin/activate"
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

RUNDIR=$(dirname …
Run Code Online (Sandbox Code Playgroud)

django nginx gunicorn

3
推荐指数
1
解决办法
4336
查看次数

部署Django,supervisorctl异常终止

我正在尝试部署django.所以在干净的VPS中安装了所有东西.我能够使用独角兽运行服务器,但我正在尝试使用supervisord.所以我像过去一样遵循了这个教程,但现在当我启动应用程序时,sudo supervisorctl start uniprogress我正在收到错误说法uniprogress: ERROR (abnormal termination).您可以在下面找到日志文件.

文件:/opt/myapps/logs/gunicorn_supervisor.log

Starting uniprogress as uniusr
2014-04-24 04:54:30 [18053] [INFO] Starting gunicorn 18.0
Traceback (most recent call last):
  File "/opt/myapps/uniprogress/../bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==18.0', 'console_scripts', 'gunicorn')()
  File "/opt/myapps/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 71, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/opt/myapps/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 143, in run
    Arbiter(self).run()
  File "/opt/myapps/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 172, in run
    self.start()
  File "/opt/myapps/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 134, in start
    self.LISTENERS = create_sockets(self.cfg, self.log)
  File "/opt/myapps/local/lib/python2.7/site-packages/gunicorn/sock.py", line 198, in create_sockets
    sock = …
Run Code Online (Sandbox Code Playgroud)

python django nginx supervisord gunicorn

3
推荐指数
1
解决办法
1225
查看次数

Django Gunicorn:无法找到应用程序

我开始将全新安装的django安装到Python 3.4 virtualenv中.然后,我尝试在第一次运行的测试教程后启动gunicorn,但它失败了.我有一个完全配置的开发服务器,其中gunicorn无法运行,向我显示相同的错误,没有命名模块<django project name>.wsgi.

(test_projectprodenv)djangouser@ff:~$ gunicorn test_project.wsgi:application --bind 162.243.195.141:8001
Exception in worker process:
Traceback (most recent call last):
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/arbiter.py", line 502, in spawn_worker
    worker.init_process()
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/workers/base.py", line 114, in init_process
    self.wsgi = self.app.wsgi()
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/base.py", line 66, in wsgi
    self.callable = self.load()
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/util.py", line 356, in import_app
    __import__(module)
ImportError: No module named 'test_project.wsgi'
Run Code Online (Sandbox Code Playgroud)

我开始使用新服务器来测试这个新的Django项目的唯一原因是希望gunicorn会认为我可能在我的旧开发服务器上配置错误.请记住,这是完全新鲜的.我没有在Django项目文件夹中触及任何内容,也没有触及settings.py配置数据库.

编辑:添加了文件结构.

(test_projectprodenv)djangouser@ff:~$ ls …
Run Code Online (Sandbox Code Playgroud)

python django gunicorn

3
推荐指数
1
解决办法
7075
查看次数

如何重新启动gunicorn hup,我不知道masterpid或PID文件的位置

我想重新启动一个使用gunicorn运行的Django服务器.

我知道如何在我的系统中使用gunicorn.但是现在我需要重新启动一个我没有设置的远程服务器.

我不知道masterpid重启服务器我怎样才能获得masterPID.

通常我HUP用枪sudo kill -s HUP masterpid.

我试过了 ps aux|grep gunicorn

我没有在gunicorn.pid任何地方找到该文件.

我该masterpid怎么办?

django gunicorn

3
推荐指数
3
解决办法
4360
查看次数

使用gunicorn部署Django没有名为ImportError的模块:没有名为validation的模块

我试图使用nginx,gunicorn和virtualenv来部署我的Django项目.但是在运行此评论时我得到了以下错误

sudo gunicorn_django --bind test.com:8001
Run Code Online (Sandbox Code Playgroud)

记录:

Traceback (most recent call last):
  File "/opt/postjust/lib/python2.7/site-packages/gunicorn/arbiter.py", line 503, in spawn_worker
    worker.init_process()
  File "/opt/postjust/lib/python2.7/site-packages/gunicorn/workers/base.py", line 116, in init_process
    self.wsgi = self.app.wsgi()
  File "/opt/postjust/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/opt/postjust/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 105, in load
    mod = util.import_module("gunicorn.app.django_wsgi")
  File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/opt/postjust/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py", line 21, in <module>
    from django.core.management.validation import get_validation_errors
ImportError: No module named validation
[2015-02-23 00:58:17 +0200] [10584] [INFO] Worker exiting (pid: 10584)
[2015-02-23 00:58:17 +0200] [10581] …
Run Code Online (Sandbox Code Playgroud)

python django nginx python-2.7 gunicorn

3
推荐指数
1
解决办法
2万
查看次数

从HTTP请求运行后台任务

我有一些服务器代码,我试图从GET请求运行失败,但我不断收到超时错误.是否可以在GET请求期间启动并行线程,然后向用户返回一条消息,说明他们的请求是在后台处理的?如果没有,我的代码可以在不给客户端控制的情况下完成哪些替代方法?

我是一个在gunicorn服务器上运行最新Flask的新手.

python web-applications flask gunicorn

3
推荐指数
1
解决办法
2239
查看次数

用Django,Nginx,Gunicorn和主管清空日志

我的生产环境中的django登录有问题.我正在使用Nginx + Gunicorn + Supervisorctl来运行我的Django网站.我已经尝试了几天所有的一切,没有任何结果.

我的想法是有两个日志文件,就像我在Django应用程序中定义的那样.一个用于存储所有日志记录(messages.log),另一个用于存储WARNING,ERROR和CRITICAL日志记录(errors.log)

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
    'verbose': {
        'format': ' [%(asctime)s] [%(levelname)s] [%(name)s] %(message)s'
    },
    'simple': {
        'format': ' %(levelname)s %(message)s'
    },
},
'handlers': {
    'console': {
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'verbose'
    },
    'file': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'formatter': 'verbose',
        'filename': '/home/myuser/logs/messages.log'
    },
    'file_errors': {
        'level': 'WARNING',
        'class': 'logging.FileHandler',
        'formatter': 'verbose',
        'filename': '/home/myuser/logs/errors.log'
    },
    'mail_admins': {
        'level': 'ERROR',
        'class': 'django.utils.log.AdminEmailHandler',
        'include_html': True
    }
},
'loggers': {
    'main': {
        'handlers': …
Run Code Online (Sandbox Code Playgroud)

django logging nginx supervisord gunicorn

3
推荐指数
1
解决办法
3472
查看次数

通过Virtualenv使用Supervisor激活Flask应用程序中的Gunicorn

我正在尝试使用(1)nginx(2)gunicorn,(3)git和(4)Supervisor将Flask应用程序部署到ec2实例。我已经设置了nginx,git,gunicorn,但是在编写主管脚本时遇到了麻烦。

我无法让主管在virtualenv的上下文中启动gunicorn。

当我gunicorn run:app在virtualenv之外运行时,它将返回

ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud)

当我在virtualenv中运行相同的命令时,它工作正常。

当我在virtualenv外部运行相同的命令但在虚拟env中指定gunicorn时(即/var/www/sitename/env/bin/gunicorn run:app),它又可以正常工作了。

这是我无法解决的问题,但是我认为,如果我可以让主管在virtualenv内运行gunicorn,那将不是问题,但我也无法做到。

我试过在主管脚本中添加两个程序,一个用于启动虚拟环境,另一个用于gunicorn,使用引号(一个类似的SO答案建议)将这两个命令加在一起,&&用于结合激活virtualenv和启动gunicorn,声明一个environment=PATH=变量,以及许多其他选项;我就是无法正常工作。

我不知道我做错了什么或尝试其他什么。有人知道我现在能做什么吗?

我正在运行python3-我读到主管仅限于v2,但其他人在回答中提到它只是任务管理器,没关系。

nginx flask python-3.x supervisord gunicorn

3
推荐指数
1
解决办法
1551
查看次数