AWS ALB + Django + Gunicorn +- Nginx?
我正在AWS中构建环境,以托管Django应用程序.我试图弄清楚我是否应该使用Nginx作为构建的一部分. 我列出以下几个不同的环境,例如/比较目的.所有环境都使用AWS Alb. env 1 alb-> dockercontainer运行django +使用内置的django Web服务器,静态文件 - in Inbuilt Django Web服务器未为生产使用 env 2 alb-> dockercontainer运行django/gunicorn +使用Gunicorn(不是Django WebServer) - 静态文件不起作用 env 3 alb-> dockercontainer运行django/gunicorn + nginx 注意:我尚未测试此配置. +使用Gunicorn(不是Django WebServer) +使用nginx 静态文件应起作用 我阅读 this stackoverflo
4 2024-01-26
编程技术问答社区
使用gunicorn + nginx为flask应用提供服务,显示404 [ec2]
我试图通过遵循此 digitalocean教程. 进行测试我早些时 $ gunicorn --bind 0.0.0.0:5000 trumporate.wsgi:app curling curling api端点在EC2框中起作用 $ curl -X GET http://0.0.0.0:5000/api/v1/trump/rant/ { "foo": "bar" } 现在,我通过制作SystemD Service 转移了这个枪支过程,以在启动中运行 # /etc/systemd/system/trumporate.service [Unit] Description=Gunicorn instance for trumporate After=network.target [Service] User=ubuntu Group=www-data WorkingDirectory=/var/opt/trumporate ExecStart=/usr/
2 2024-01-26
编程技术问答社区
在单一服务器上无缝部署Django
我有一个在Django和Python 2.6上构建的新网站,我已将其部署到云上(BuzzWord Amazon Micro EC2实例是免费的!). 这是我的详细说明:因为这是一个新网站(想要与最新和最伟大的游戏一起玩),所以我在主管上使用了Nginx和Gunicorn. 使用yum/easy_install从树干安装的所有软件. 我的数据库是sqlite(目前 - 不确定下一步去哪里,但这不是问题).也在待办事项列表中:virtualenv + pip. 到目前为止还不错. 我的代码在SVN中.我写了一个简单的Fabfile来部署 - 通过主管检查最新的代码并重新启动Gunicorn.我将DNS名称挂在弹性IP中. 它有效. 我的问题是,如何在不破坏服务的情况下更新网站?我运行小更新脚本时,网站的用户将获得404s/500. 有没有添加其他服务器的方法来执行此操作(价格是键)? 我很想拥有一个分期系统(在其他端口上?)和分期和生产之间的无缝切换.在同一
2 2024-01-26
编程技术问答社区
在单一服务器上无缝部署Django
我有一个在Django和Python 2.6上构建的新网站,我已将其部署到云上(BuzzWord Amazon Micro EC2实例是免费的!). 这是我的详细说明:因为这是一个新网站(想要与最新和最伟大的游戏一起玩),所以我在主管上使用了Nginx和Gunicorn. 使用yum/easy_install从树干安装的所有软件. 我的数据库是sqlite(目前 - 不确定下一步去哪里,但这不是问题).也在待办事项列表中:virtualenv + pip. 到目前为止还不错. 我的代码在SVN中.我写了一个简单的Fabfile来部署 - 通过主管检查最新的代码并重新启动Gunicorn.我将DNS名称挂在弹性IP中. 它有效. 我的问题是,如何在不破坏服务的情况下更新网站?我运行小更新脚本时,网站的用户将获得404s/500. 有没有添加其他服务器的方法来执行此操作(价格是键)? 我很想拥有一个分期系统(在其他端口上?)和分期和生产之间的无缝切换.在同一
4 2024-01-26
编程技术问答社区
启动 gunicorn.service 失败。未找到单位 gunicorn.service
我正在尝试使用Django,Gunicorn和Nginx将基本应用程序部署到Amazon EC2.我将应用程序git clone'd放入我的AWS Ubuntu实例中,并且正在运行Django 1.10. 我可以使用以下命令使用Gunicorn来运行我的应用... gunicorn --bind 0.0.0.0:8000 blackspruceherbals.wsgi:application ,当我尝试为Gunicorn创建一个新兴文件时,我会遇到麻烦.文件路径如下... /etc/init/gunicorn.conf 和Upstart代码看起来像这样... description "Gunicorn application server handling black spruce herbals" start on runlevel [2345] stop on runlevel [!2345] respawn setuid ubuntu setgi
6 2024-01-25
编程技术问答社区
为什么我的gunicorn Python/Flask工人从信号期退出?
我有一个Python/Flask Web应用程序,该应用程序我正在亚马逊ECS上的Docker Image中通过Gunicorn部署.一切都很好,然后突然,包括最后一个成功的请求,我在日志中看到了这一点: [2017-03-29 21:49:42 +0000] [14] [DEBUG] GET /heatmap_column/e4c53623-2758-4863-af06-91bd002e0107/ADA [2017-03-29 21:49:43 +0000] [1] [INFO] Handling signal: term [2017-03-29 21:49:43 +0000] [14] [INFO] Worker exiting (pid: 14) [2017-03-29 21:49:43 +0000] [8] [INFO] Worker exiting (pid: 8) [2017-03-29 21:49:43 +0000] [12] [INFO] Worker exitin
0 2024-01-24
编程技术问答社区
普通请求中的Django AJAX请求没有通过
我有一个带有登录网页的Django网站.当提交页面上的登录表单时,它执行登录视图,该视图在其中运行其中需要很长时间来处理的函数(30秒左右).因此,为了在登录期间向客户端显示进度,一旦提交表单,登录页面上的JS功能就开始向服务器提出AJAX POST请求(to a poll_state视图),该请求返回登录.然后,它更新登录页面的HTML以显示状态(如加载栏). 我的问题是,当我使用Nginx代理服务器进行常规python manage.py runserver时,它可以完美地工作.但是,当我使用gunicorn而不是python manage.py runserver时,直到登录视图完全处理并返回响应(这是下一个网页)之前,AJAX请求才会通过.它没有轮询登录状态,而只是在加载下一个网页后返回poll_state视图的一堆错误. 用户提交登录表单时,服务器执行登录视图,并同时使用AJAX请求开始对服务器进行轮询.这是登录网页上的JS代码,它发送请求: le
2 2024-01-21
编程技术问答社区
airflow: error: unrecognized arguments: webserver
我正试图启动我的气流网络服务器,但它说这是一个未被认可的参数 $ airflow webserver [2017-05-25 15:06:44,682] {__init__.py:36} INFO - Using executor CeleryExecutor ____________ _____________ ____ |__( )_________ __/__ /________ __ ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / / ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ / _/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/ [2017-05-25 15:06:45,099] {models.py:154} INFO - Filling up the DagBag from /ho
0 2024-01-20
编程技术问答社区
Airflow'的Gunicorn正在向错误日志发送垃圾邮件
我正在使用Apache气流,并认识到gunicorn-error.log的大小在5个月内生长了50 GB.大多数日志消息是信息级日志,例如: [2018-05-14 17:31:39 +0000] [29595] [信息]处理信号:ttou [2018-05-14 17:32:37 +0000] [2359] [info]工人退出(PID:2359) [2018-05-14 17:33:07 +0000] [29595] [信息]处理信号:ttin [2018-05-14 17:33:07 +0000] [5758] [信息] pid启动工人: 5758 [2018-05-14 17:33:10 +0000] [29595] [信息]处理信号:TTOU [2018-05-14 17:33:41 +0000] [2994] [info]工人退出(PID:2994) [2018-05-14 17:34:11 +0000] [29595] [信息]处理信号:ttin [201
4 2024-01-20
编程技术问答社区
由于gunicorn的原因,airflow systemd失败。
我无法使用SystemD启动气流网络服务器,即使它启动并在SystemD之外正常运行,例如: export AIRFLOW_HOME=/path/to/my/airflow/home ; airflow webserver -p 8080 SystemD日志使我相信该问题来自枪支,即使我运行上述命令时没有问题(即,这只是SystemD中的一个问题).我根据气流文档(运行Ubuntu 16)配置了以下SystemD文件. /etc/ext/默认/气流 AIRFLOW_HOME=/path/to/my/airflow/home SCHEDULER_RUNS=5 /lib/systemd/system/airflow-webserver.service [Unit] Description=Airflow webserver daemon After=network.target [Service] EnvironmentFile=/etc/defaul
2 2024-01-20
编程技术问答社区
在气流中运行DAG时出现 "处理信号:ttou "信息
我创建了示例dag,其中我的dag配置如下. default_args = { 'owner': 'airflow', 'depends_on_past': False, 'start_date': one_min_ago, 'email': ['admin@airflow.com'], 'email_on_failure': True, 'email_on_retry': True, 'retries': 5, 'retry_delay': timedelta(hours=30)) 当我运行气流网络服务器时,我要在下面进行消息. /home/af_user/anaconda/lib/python3.5/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is dep
0 2024-01-20
编程技术问答社区
在gunicorn内的http请求导致gunicorn响应失败?
我正在运行以下代码,从Gunicorn的网站( http://gunicorn.org/run.html.html ) import urllib2 def app(environ, start_response): print "in app" # response=urllib2.urlopen('http://www.google.com') data = 'Hello, World!\n' response_headers = [ ('Content-type','text/plain'), ('Content-Length', str(len(data))) ] start_response('200 OK', response_headers) print " starting response" return iter([data]) 它完全按预期运行,除非我散布
2 2023-12-15
编程技术问答社区
使用WSGI时Gunicorn失败
我希望枪支通过WSGI与Tilestache交谈.但是当我运行此命令... gunicorn "TileStache:WSGITileServer('/var/osm/bright/project/OSMBright4/tilestache.cfg')" ...我得到这些错误: 2013-03-30 23:02:41 [14300] [INFO] Starting gunicorn 0.17.2 2013-03-30 23:02:41 [14300] [INFO] Listening at: http://127.0.0.1:8000 (14300) 2013-03-30 23:02:41 [14300] [INFO] Using worker: sync 2013-03-30 23:02:41 [14305] [INFO] Booting worker with pid: 14305 Error loading Tilestache config: 2013-03-30
6 2023-12-15
编程技术问答社区
heroku本地网络不工作,因为正在使用gunicorn连接。
我已经克隆了这个heroku-django-starter 我已经完成了pip install gunicorn 当我运行heroku local web时,我会收到以下错误日志. forego | starting web.1 on port 5000 web.1 | [2016-03-08 21:03:59 -0800] [8288] [INFO] Starting gunicorn 19.4.5 web.1 | [2016-03-08 21:03:59 -0800] [8288] [ERROR] Connection in use: ('0.0.0.0', 5000) web.1 | [2016-03-08 21:03:59 -0800] [8288] [ERROR] Retrying in 1 second. web.1 | [2016-03-08 21:04:00 -0800] [8288] [ERROR] Connection in use: ('0.0.
6 2023-12-15
编程技术问答社区
用Flask和谷歌应用引擎发送服务器事件
我一直在尝试使用一个使用服务器序列事件的WebApp进行工作.使用烧瓶的app.run()方法时,我编写的应用程序在本地计算机上工作.但是,当我在GAE上运行它时,我无法使其正常工作. WebApp使用SSE经常以当前时间发布消息.客户只需将其添加到Div. 的HTML中 烧瓶应用程序 import random from datetime import datetime from flask import render_template, Response from time import sleep from message_server import app def event_stream(): while True: time_now = datetime.now() message = "New message at time: {0}".format(time_now.strftime("%H:%M:%S"))
10 2023-12-15
编程技术问答社区
为什么代码更改时的自动重载只用于Gunicorn的调试?
我正在使用 gunicorn 运行我的烧瓶生产中的网站.一切都很好,但是部署更新时,我总是停止并再次启动服务器.我现在读到有关此 reload flag "在代码更改时重新启动工人"根据文档的说法是" 用于开发".如果我可以在生产中使用它,则可以防止在部署时停止和重启枪支. 我不应该在生产中使用自动重加载的原因是什么? 解决方案 重新加载旗可以用于生产中,基本上它可以在重新启动枪支时手动执行的操作. 不在生产中使用自动积分的基本原因是,您损害了服务对第三方的可靠性,而无需从您的角度进行任何控制. 想象一下,您的服务通过新代码不断更新.其中一些可能是越野车并打破用户体验,您将无法防止这种情况.另一方面,如果您一天中多次更新应用程序,您的用户可能会在白天多次丢失数据/经验不佳.
6 2023-12-15
编程技术问答社区
django如何与virtualenv一起工作?
我了解如何创建Virtualenv,激活该Virtualenv,然后在激活Virtualenv时安装Django.例如: virtualenv ~/narnia source ~/narnia/bin/activate pip install django 据我了解,当您"激活"虚拟环境时,它只是在您进入外壳时会更改一些路径变量,仅此而已.因此,当使用纳尼亚(Narnia)激活纳尼亚(Narnia)时,将django安装在pip时,它只需将事物安装到相对于〜/narnia的位置而不是相对于/usr(ex.〜/narnia/lib/python2.6/site-cackages而不是/usr/lib/python2.6/site-ackages). 现在,假设我想用该Virtualenv创建一个Django项目.我什至不必被激活,正确吗?我可以做: deactivate cd ~ narnia/bin/django-admin.py startproject mypr
0 2023-12-15
编程技术问答社区
无法将Gunicorn作为服务在systemd中运行 203/EXEC
我正在尝试使用Gunicorn/wsgi/nginx部署燃烧器.我一直试图让它工作一段时间,除了我遵循的数字海洋指南以外,找不到任何东西.我尝试了几种不同的调整mywebapp.service文件,因为我很确定这是我的问题所在.我可以运行/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 -u nginx -g nginx wsgi,而枪支将起作用.我很确定这可能是我缺少的一些小可能的事情,但我输了.我的nginx用户拥有应用程序目录. [root@localhost mywebapp]#systemctl状态mywebapp ● mywebapp.service - Gunicorn instance to serve mywebapp Loaded: loaded (/etc/systemd/system/mywebapp.service; enabled; vendor preset: disabled) Active
10 2023-12-15
编程技术问答社区
瓶子里的枪神
像这样的运行瓶脚本有什么区别 from bottle import route, run @route('/') def index(): return 'Hello!' run(server='gunicorn', host='0.0.0.0', port=8080) 使用命令 python app.py 和此 from bottle import route, default_app @route('/') def index(): return 'Hello!' app = default_app() 使用命令 Gunicorn App:App -bind ='0.0.0.0:8080' 解决方案 本质上什么都没有. GunicornServer GunicornServer
6 2023-12-15
编程技术问答社区
Gunicorn'的gthread异步工作者是否与Waitress类似?
我已经阅读了2013年的一些帖子,即gunicorn团队计划建立一个螺纹缓冲层工人模型,类似于女服务员的工作方式.那是Gthread Async工作者所做的吗? GTHREAD工人于2014年发布了19.0版. 女服务员具有缓冲请求的主异态线程,并在请求I/O完成后将每个请求提升为其同步工作线程之一. Gunicorn Gthread没有太多文档,但听起来很相似.来自 docs : 工人GTHread是一个螺纹工人.它接受主循环中的连接,将接收的连接添加到线程池中作为连接作业. 我只问,因为我对python async i/o代码不太了解,尽管粗略阅读gthread.py似乎表明这是一个套接字缓冲的过程,可以保护工作人员线程免受长期/o的影响.请求(并缓冲响应I/O). 解决方案 Gunicorn中的螺纹工人不缓冲I/O,也不会在主线程中读取请求主体. 主循环异步处理呼叫accept() [ 1 ],但随后立即将插座提交到线程池[ 2 ]. 其
2 2023-12-15
编程技术问答社区