Articles of supervisord

部署Django,supervisorctlexception终止

我正在尝试部署Django。 所以把所有东西安装在一个干净的VPS。 我能够使用独angular兽运行服务器,但我试图使用supervisord。 所以我跟着这个教程跟过去一样,但是现在当我用sudo supervisorctl start uniprogress我得到一个错误,说uniprogress: ERROR (abnormal termination) 。 在下面你可以find日志文件。 文件:/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 […]

Django + nginx + gunicorn给出502错误。 很less的日志信息

我有我的服务器configuration像这样(这是一个新的安装Ubuntu 10.10) nginx + gunicorn + django + supervisord来运行它 当我尝试访问我的网站时,我得到一个502错误。 这将显示在错误日志中: 2011/06/03 10:40:59 [error] 15066#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: [retracted], server: [retracted], request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:29000/", host: "[retracted]" 这是我的nginx.conf http://pastebin.com/t0V2yFxr 这是我的supervisord.conf http://pastebin.com/pqVqRLSk 和我的gunicorn.conf bind = "127.0.0.1:29000" logfile = "/sites/[retracted]/logs/gunicorn.log" workers = 3 当我运行sudo supervisordctl状态 它什么都不返回。 所以这让我怀疑它没有正常运行。 […]

Nginx +主pipe+ Gunicorn + Django +芹菜 – 安全问题

我正在用nginx运行一个web服务器,之后是gunicorn来与Celery运行一个Django应用程序。 所有的gunicornstream程和芹菜工都由主pipepipe理。 我的问题是,为堆栈中的每个进程设置权限的最佳实践是什么? 目前我基本上是遵循默认值,我敢肯定有一些部分在这里是不安全的: Nginx的主进程是root,worker进程是以www-data的方式运行的 主pipe以root身份运行 Gunicorn以root身份运行(我试图将其设置为另一个用途,但是进程无法启动) PostgresSQL和RabbitMQ作为自己的用户运行(postgres和rabbitmq) 我还没有设立芹菜,但他们的文件说,不作为根运行 哪些权限可以被收紧,以及我必须确保他们有权访问哪些文件才能工作?

tornadoweb gzip = True不能在supervisord和nginx下工作

在使用龙卷风的同时,我发现gzip = True特性,从命令行运行应用程序时可以正常工作,下面是设置: define("port", default=settings.LISTEN_PORT, help="run on the given port", type=int) define("debug", default=True, help="run in debug mode", type=bool) define("dont_optimize_static_content", default=False, help="Don't combine static resources", type=bool) define("dont_embed_static_url", default=False, help="Don't put embed the static URL in static_url()", type=bool) tornado.options.parse_command_line() tornado.options.options['log_file_prefix'].set('/var/log/tmp.log') app_settings = dict( template_path=os.path.join(os.path.dirname(__file__), "templates"), static_path=os.path.join(os.path.dirname(__file__), "static"), xsrf_cookies=False, gzip=True, debug=True, ) 然而,从龙卷风服务器部署应用程序supervisord / nginx响应不gziped。 [program:app-8001] command=python /var/app/server/app.py […]

主pipe和uWSGI不能和nginx一起工作

我使用supervisord来pipe理龙卷风,而不使用nginx作为负载均衡器。 主pipe和uWSGI与nginx作为负载blancer我有严重的问题。 我用瓶子作为框架。 当我从命令行运行下面的代码,并在FF中打开nginx时,所有的工作都很好。 sudo command = /usr/local/bin/uwsgi –loop gevent –socket 127.0.0.1:8070 –wsgi-file /home/ubuntu/workspace/uwsgiServer.py -b 32768 –master –async 5 –enable-threads –listen 100 –uid root 如果我把命令行放在supervior中,那么我找不到页面。 uWSGI Error Python application not found [program:uwsgi] #autostart=true #autorestart=true #process_name = uwsgi-%(process_num)s command = /usr/local/bin/uwsgi –loop gevent –socket 127.0.0.1:8070 –wsgi-file /home/ubuntu/workspace//uwsgiServer.py -b 32768 –master –async 5 –enable-threads –listen 100 –uid […]

为gunicorn创buildsupervisord脚本的正确方法? Django 1.6

这是我的gonicorn.conf,但我似乎无法得到正确的命令。 当我在命令行中键入命令时,命令“正在尝试”正在工作,但不是“超级用户”命令。 [program:gunicorn] directory = /home/USER/.virtualenvs/SITE/myApp/ command=/home/USER/.virtualenvs/SITE/bin/python /home/USER/.virtualenvs/SITE/myApp/manage.py run_gunicorn myApp.wsgi:application -c /home/USER/.virtualenvs/SITE/myApp/gunicorn.conf.py user = USER autostart = true autorestart = true redirect_stderr = true stdout_logfile = /home/USER/logs/gunicorn.log stderr_logfile = /home/USER/logs/gunicorn_err.log gunicorn的正确命令是什么? 这是我尝试启动gunicorn时遇到的错误: /home/USERNAME/.virtualenvs/SITE/local/lib/python2.7/site-packages/sorl/thumbnail/helpers.py:5: DeprecationWarning: django.utils.simplejson is deprecated; use json instead. from django.utils import simplejson 2013-02-25 13:46:55 [3975] [INFO] Starting gunicorn 0.17.2 2013-02-25 13:46:55 [3975] [INFO] […]

在连接到Docker容器内部的Node.js上游时,Nginx连接被拒绝

我有以下设置: 以supervisord为入口点的Docker容器,supervisord运行一个Node.js进程和Nginx代理。 Nginx的端口暴露在外面。 在主机上,另一个Nginx被用于SSL终止和虚拟主机路由/负载平衡,它被用作Docker容器的代理。 我遇到了一些奇怪的问题,有时Docker容器中的Nginx服务器报告连接到上游Node.js服务器的错误。 似乎HTTP请求是200,所以也许它会自动重试,即使只有一个上游?! 此外,在Node.js过程stdout / stderr没有错误或崩溃的迹象。 这是我看到的错误: 2014/07/31 12:48:54 [error] 15#0: *10 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.42.1, server: f074d2f4389f, request: "GET /users/me HTTP/1.1", upstream: "http://[::1]:3000/users/me", host: "xxx.xxx.com", referrer: "https://xxx.xxx.com/" 可能是什么问题? 这是supervisordconfiguration文件: [supervisord] nodaemon=true logfile=/var/log/supervisor/supervisord.log ; supervisord log file logfile_maxbytes=50MB ; maximum size of logfile before rotation […]

什么应该RHEL init.d脚本中的chkconfig行设置为像supervisord这样的进程控制器?

我想第一次写一个init.d脚本来启动supervisord进程。 Supervisor是一个像runit , upstart或systemd一样的过程控制器/pipe理器。 如果系统重新启动,我希望它自动启动,以便它可以启动我的应用程序。 我用这个tldp教程作为编写init.d脚本的基础。 它工作正常,但我不明白我应该如何修改文件中的这一行: # chkconfig: 2345 95 05 本教程中的注释说明: 虽然这些是注释,但它们被chkconfig命令使用,并且必须存在。 这个特定的行定义了运行级2,3,4和5,这个子系统将被优先级95(最后一个)激活,并且被优先级05(第一个之一)取消激活。 这个RHEL文档解释了各种运行级别: 0 – Halt 1 – Single-user text mode 2 – Not used (user-definable_ 3 – Full multi-user text mode 4 – Not used (user-definable) 5 – Full multi-user grapical mode 6 – Reboot 从这些select,我想我想运行在35 ,我假设1是只为系统pipe理员。 有几个例子supervisord init.d脚本,例如这里 。 我注意到,所有的RHEL […]

为什么使用uWSGI和主pipe的Flask应用程序,而不只是主pipe?

我通常在uWSGI和nginx前面运行我的Flask应用程序。 但是我以为只要主pipe和nginx就可以实现同样的function,所以我search了很多关于如何设置uWSGI-supervisor-nginx堆栈的好处。 我已经决定转向这样的一个问题,在网上冒险。 那么在uWSGI,supervisor和nginx后面运行Flask应用程序有什么好处? 为什么显然没有人只有pipe理员才能运行Flask应用程序?

gunicorn:错误(没有这样的文件)nginx + gunicorn +主pipe

我用gunicorn,nginx,supervisord部署我的django项目。 我在virtualenv上安装了一个gunicorn,join了INSTALL_APPS。 命令./manage.py run_gunicorn -b 127.0.0.1:8999工作原理: 2012-12-04 12:27:33 [21917] [INFO] Starting gunicorn 0.16.1 2012-12-04 12:27:33 [21917] [INFO] Listening at: http://127.0.0.1:8999 (21917) 2012-12-04 12:27:33 [21917] [INFO] Using worker: sync 2012-12-04 12:27:33 [22208] [INFO] Booting worker with pid: 22208 对于nginx我编辑了nginx.conf: server { listen 111111111:80; server_name my_site.pro; access_log /home/user/logs/nginx_access.log; error_log /home/user/logs/nginx-error.log; location /static/ { alias /home/user/my_project/static/; } location […]