标签: gunicorn

(13:权限被拒绝)连接上游时:[nginx]

我正在使用nginx和gunicorn配置django项目.当我gunicorn mysite.wsgi:application --bind=127.0.0.1:8001在nginx服务器中访问我的端口时,我在错误日志文件中收到以下错误.

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的"http://127.0.0.1:8001/"档案

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我得到的html页面中nginx.conf.

我做错了什么?

django nginx python-2.7 gunicorn

256
推荐指数
8
解决办法
14万
查看次数

Gunicorn工人超时错误

我设置了gunicorn与3名工人30个工人连接并使用eventlet工人类.它是在Nginx背后设置的.在每几个请求之后,我在日志中看到了这一点.

[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我怎么能弄清楚什么是错的?

谢谢

gunicorn

152
推荐指数
11
解决办法
10万
查看次数

单个Flask进程接收多少个并发请求?

我正在使用Flask构建一个应用程序,但我不太了解WSGI,它是HTTP基础,Werkzeug.当我开始使用gunicorn和4个工作进程为Flask应用程序提供服务时,这是否意味着我可以处理4个并发请求?

我的意思是并发请求,而不是每秒或其他任何请求.

谢谢!

python wsgi flask gunicorn

113
推荐指数
4
解决办法
7万
查看次数

gunicorn autoreload on source change

最后,我将我的开发环境从runserver迁移到gunicorn/nginx.

将runserver的自动重载功能复制到gunicorn会很方便,因此当源更改时服务器会自动重新启动.否则我必须手动重启服务器kill -HUP.

有什么方法可以避免手动重启?

python django reload gunicorn

106
推荐指数
4
解决办法
4万
查看次数

什么是预分叉Web服务器模型?

我想知道当Web服务器将自己描述为预分叉Web服务器时它究竟意味着什么.我有一些例子,例如红宝石的独角兽和蟒蛇的gunicorn.

更具体地说,这些是问题:

  • 这个模型解决了什么问题?
  • 最初启动预分叉Web服务器时会发生什么?
  • 它如何处理请求?

此外,一个更具体的问题为独角兽/ gunicorn:

假设我有一个我想用(g)独角兽运行的webapp.在初始化时,webapp将执行一些初始化操作(例如,填写其他数据库条目).如果我用多个worker配置(g)unicorn,初始化的东西会多次运行吗?

apache webserver preforking unicorn gunicorn

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

使用gunicorn和nginx部署Django

这是一个广泛的问题,但我想得到一个规范的答案.我一直在尝试在Django中使用gunicornnginx部署一个站点.阅读吨的教程后,我获得了成功,但我不能肯定我遵循的步骤是不够好,没有问题或可能有更好的方法来做到这一点运行一个网站.这种不确定性很烦人.

这就是为什么我正在为新手寻找一个非常详细且解释清楚的答案.我不想解释太多我所知道的,什么我不知道,因为这会歪曲回答了一下,其他人可以受益程度较轻,从你的答案.但是,我想提到的一些事情是:

  • 您认为哪种"设置"最佳?我用的virtualenv和感动我的Django项目这个环境中,但是我已经看到了另一个设置那里是虚拟环境的项目文件夹等.

  • 如何以允许多个站点托管在单个服务器中的方式设置内容?

  • 为什么有人建议使用gunicorn_django -b 0.0.0.0:8000和其他人建议gunicorn_django -b 127.0.0.1:8000?我测试了后者的Amazon EC2实例,但而前者没有问题的工作也没有工作.

  • nginx的配置文件背后的逻辑是什么?有很多教程使用截然不同的配置文件,我很困惑哪一个更好.例如,有些人使用alias /path/to/static/folder和其他人root /path/to/static/folder.也许您可以共享首选配置文件.

  • 为什么我们之间创建一个符号链接site-available,并sites-enabled/etc/nginx

  • 一些最佳实践一如既往地欢迎:-)

谢谢

deployment django nginx setup-deployment gunicorn

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

Heroku截断HTTP响应?

我在Heroku Cedar dyno上运行Flask/Gunicorn Python应用程序.该应用程序返回JSON responses其客户端(它API server真的是一个).

偶尔客户端获得0字节响应.然而,不是我回来了.这是我的应用程序日志的片段:

3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv - api_get_credits_balance():session_token = [MASKED ]

上面的第一行是我开始处理请求.

3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv 1252148511 api_get_credits_balance():returns [{' credits_balance':0}]

第二行是我返回一个值(给Flask - 它是一个Flask"Response"对象).

3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1]"10.104.41.136 - - [14/Mar/2013:13:13:31]"POST/get_credits_balance?session_token = MASKED HTTP/1.1"200 22" - ""Appcelerator Titanium/3.0.0.GA(iPhone/6.1.2; iPhone OS; en_US;)"

第三行是Gnicorn,你可以看到Gunicorn获得了200个状态和22个字节的HTTP主体(" 200 22").

但是,客户端获得0个字节.这是Heroku路由器日志:

3月14日13:13:30 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 heroku [router] at = info method = POST path =/get_credits_balance?session_token = MASKED host …

python json heroku flask gunicorn

78
推荐指数
1
解决办法
2576
查看次数

调试在Gunicorn中运行的Flask应用程序

我一直在使用nginx/gunicorn和Flask为我的应用程序开发一个新的开发平台.

Ops-wise,一切正常 - 我遇到的问题是调试Flask层.当我的代码出现错误时,我只是将500错误返回到浏览器,并且没有任何内容显示在控制台或我的日志中.

我尝试了很多不同的配置/选项......我想我一定是想错过一些明显的东西.

我的gunicorn.conf:

import os

bind = '127.0.0.1:8002'
workers = 3
backlog = 2048
worker_class = "sync"
debug = True
proc_name = 'gunicorn.proc'
pidfile = '/tmp/gunicorn.pid'
logfile = '/var/log/gunicorn/debug.log'
loglevel = 'debug'
Run Code Online (Sandbox Code Playgroud)

borks-testserver.py的一些Flask代码示例:

from flask import Flask
from flask import render_template_string
from werkzeug.contrib.fixers import ProxyFix

app = Flask(__name__)

@app.route('/')
def index():
    n = 1/0
    return "DIV/0 worked!"
Run Code Online (Sandbox Code Playgroud)

最后,命令在gunicorn运行烧瓶应用程序:

gunicorn -c gunicorn.conf.py testserver:app
Run Code Online (Sandbox Code Playgroud)

谢谢你们

python flask gunicorn

65
推荐指数
3
解决办法
5万
查看次数

Gunicorn Nginx超时问题

我在gunicorn + nginx上运行django.我正面临文件上传的问题.实际上上传工作正常,但枪炮超时因此导致这在nginx:

2011/07/25 12:13:47 [error] 15169#0: *2317 upstream timed out (110: Connection timed out) while reading response header from upstream, client: IP-ADDRESS, server: SERVER, request: "GET /photos/events/event/25 HTTP/1.1", upstream: "http://127.0.0.1:29000/photos/events/event/25", host: "HOST", referrer: "REFERER_ADDRESS"
Run Code Online (Sandbox Code Playgroud)

如果我刷新页面,我可以看到所有照片都上传得很好.问题是它会导致超时,从而给人一种上传不起作用的印象.

这是我的枪炮:

bind = "127.0.0.1:29000"
logfile = "/path/to/logs/gunicorn.log"
workers = 3
Run Code Online (Sandbox Code Playgroud)

我尝试更改超时,但它没有用.

django nginx gunicorn

58
推荐指数
3
解决办法
4万
查看次数

如何让Django与Gunicorn一起提供静态文件?

我想在localhost上的gunicorn下运行我的django项目.我安装并集成了gunicorn.当我跑:

python manage.py run_gunicorn
Run Code Online (Sandbox Code Playgroud)

它工作但没有任何静态文件(css和js)

我在settings.py中禁用了debug和template_debug(使它们成为假),但它仍然是相同的.我错过了什么吗?

我称之为静态:

{{ STATIC_URL }}css/etc....
Run Code Online (Sandbox Code Playgroud)

python django gunicorn

58
推荐指数
5
解决办法
5万
查看次数