我们正在一堆Linux服务器上(使用nginx负载均衡器向各种服务器发送stream量)使用CherryPy web服务器来设置一个Python web应用程序。 我们正在从Windows服务器切换到Linux服务器,我们将在CentOS 6.5上运行。 在Windows上,我们有一个自定义的服务pipe理器,用于启动和停止Python可执行文件,并在出于任何原因崩溃或退出时重新启动它们。 我的问题是:什么是在Linux上做同样的事情的好工具? 理想情况下它会: 能够使用诸如service our_app start或/etc/init.d/our_app start类的service our_app start和停止Python程序(我们基于CherryPy的服务器和应用程序)。 自动重启程序,如果它退出或崩溃 在系统启动时启动服务 到目前为止,我已经提出了各种可能性,从最简单到更复杂: 带有/etc/init.d脚本的python-daemon 新贵带着这样一个简单的新贵脚本: 一 , 二 , 三 主pipe :看起来很有意思,但是对于我们来说,这比起刚刚使用的新贵来说会更好吗? monit :在这个阶段比我们需要的更多,但也许可以在上面的一个之上使用它呢? 注意:我是一个开发人员,他比Windows有更多的Windows使用经验,以及比ops / sysadmin更多的开发经验。 只是在说'。 🙂
我正在运行一个uwsgi皇帝与各种各样的封臣,每个服务从不同的virtualenv特定的Python应用程序。 由于uwsgi是用它自己的Python 2.7解释器编译的,因此试图在其中使用带有Python 3的virtualenv在vassal.log中产生以下错误: ImportError: No module named site 我相信这个错误的根源在于uwsgi正在使用其内置的Python 2.7解释器,而它所运行的virtualenv目录仅支持Python 3解释器。 事实上,当我使用另一个uwsgi(只需在同一个virtualenv中使用pip install uwsgi安装它),错误消失。 不过,我想要一个皇帝统治几个不同的virtualenvs,所以每个安装一个单独的uwsgi不是一个选项。 根据Stackoverflow上的这个答案 ,解决这个问题的正确方法是用不同的Python解释器编译uwsgi作为可加载模块。 在我采用这种方法之前,我想知道如何configuration我的Vassals以使用另一个解释器插件。 现在我有一个从我的/etc/rc.local启动的Emperor,其设置如下: [uwsgi] uid = www-data gid = www-data master = true emperor = /etc/uwsgi/vassals daemonize = /var/log/uwsgi/emperor.log 然后我有一堆像这样的ini文件的封臣: [uwsgi] master = false single-interpreter = true socket = /tmp/%n.sock virtualenv = /home/user/.virtualenvs/djangoproject chdir = /home/user/djangoproject wsgi-file = […]
我目前正在使用Apache和mod_wsgi运行一个高stream量的python / django网站。 我希望有一个更快的networking服务器configuration,我已经听说了一些lighttpd和fastcgi的build议。 这个设置比apache + mod_wsgi为服务dynamicDjango页面更快(我已经确信lighttpd可以更好地服务于静态文件)? 网上的基准要么很差或不确定,所以我正在寻找一些个人轶事。 lighttpd + fastcgi提供什么架构好处? 我知道lighttpd使用epoll,并且fastcgi进程将是multithreading的。 另外,有两个独立的进程,一个用于lighttpd,另一个用于python解释器,将会非常有益。 我知道龙卷风和它使用epoll和callback处理成千上万的文件描述符的能力less得多。 不过,我宁愿现在坚持与Django。 谢谢, 肯
我是一个完整的初学者,并计划build立一个照片分享网站。 这是我正在计划的设置,基本上是为了一个开始 – 切诺基(而不是Apache)提供dynamic内容(基于python的应用程序)和Nginx提供静态文件。 既然,我是初学者,我有什么,输了? 那么,根据你的经验,有人可以告诉我,通过selectApache上的Cherokee来为PHP / Python /中的dynamic内容提供服务会导致什么后果? 除了事实上有很多的文档,许多人可以帮助,当有一个问题,如Apache是完善的,最stream行的Web服务器? 再次,我的意图不是在这里喷出一场火焰战争。 只是想知道切诺基在性能,可靠性和速度方面是否比Apache更好,何时重要(峰值负载时间)。 另外,我听说它比Apache在服务dynamic内容方面快得多,这是真的吗? 更新:在另一种情况下,有人可以build议一个忙碌的网站的Picasa,flickr,或YouTube的大小dynamic内容Web服务器? build立我的网站,我相信会放宽我的照片和video分享网站的扩展。 这是有点主观的,但这不是主要问题,虽然我也想对此做一些澄清。
例如,我们运行大约50台服务器。 比方说,我希望能够看到他们中的任何一个正在接近填补一个分区。 我可以做一个任务运行df -h在他们每个人,但输出是非常详细的。 我希望能够捕获输出,处理它,并返回超过X%的服务器 有没有办法与织物做到这一点?
我想用puppet来pipe理Unix用户。 Puppet提供了足够的工具来创build帐户并提供authorized_keys文件,但是没有设置用户密码,并告诉用户。 我所做的是一个生成随机密码并通过电子邮件发送给用户的python脚本。 问题是,用python启动passwd Unix命令是不可能的,于是我用命令写了一个bash脚本: echo -ne "$password\n$password\n" | passwd $user passwd -e $user 手动启动,脚本工作正常,创build的用户通过电子邮件发送密码。 但是当puppet启动它时,只有python脚本被执行,就好像os.system('/ bin / bash my_bash_script')被忽略。 没有错误显示。 用户获取密码,但passwd命令不会启动。 傀儡防止有什么限制来执行我所描述的? 或者,我怎样才能改变用户帐号,到期,并通过电子邮件发送密码? 我可以提供更多的信息,但现在,我不知道哪一个是准确的。 非常感谢! 编辑:这是一个基本的代码具有相同的症状: python:setuserpassword.py #!/usr/bin/python import os import sys user = sys.argv[1] mail = sys.argv[2] os.system('/bin/bash /root/tools/setuserpassword.sh '+user+' '+mail) bash:setuserpassword.sh #!/bin/bash # Password setup for the account password=`pwgen -N1 –secure 10` […]
testingsalt-stack我想复制一个configuration文件到另一个遥远的(我在本地主机上testingmaster和minion) / etc / salt / minion: master: 127.0.0.1 file_roots: base: – /srv/salt/base 的/ etc /盐/主: interface: 0.0.0.0 / srv / salt树: # tree srv/ srv/ ├── salt │ └── base │ └── env │ ├── envpy.template │ └── init.sls └── top.sls 和模板文件: # cat /srv/salt/base/env/envpy.template This is a test ! 这是init文件: # cat /srv/salt/base/env/init.sls […]
我们的应用程序的REST API由运行在具有典型自动缩放/负载平衡设置的AWS EC2实例上的Gunicorn( 不在 Nginx后面)提供服务。 负载均衡器的空闲超时时间为60秒,Gunicorn的保持活动超时时间为2秒。 我们已经看到来自这个configuration的零星的504 Gateway Timeout响应。 根据亚马逊的文档 ,这可能是因为服务器的保持活动超时低于负载平衡器的空闲超时设置: 原因2:已注册的实例closures与Elastic Load Balancing的连接。 解决scheme2:在您的EC2实例上启用保持活动设置,并将保持活动超时设置为大于或等于负载平衡器的空闲超时设置。 使用Nginx,默认的keepalive_timeout是75秒,这与ELB的默认设置很相配。 但是, Gunicorn文档build议在1-5秒的范围内设置keepalive 。 把Gunicorn的keepalive碰到75秒是否有意义,或者有一个很好的理由让它保持在5秒以下,即使我们没有在它前面使用反向代理?
我已经安装了Python,Apache。 命令行程序正在使用python。 我有两个虚拟主机在Apache site1.local site2.local 我想要的是我把文件放在site1的根目录下,并在浏览器中显示你好 只有mod_wsgl没有cgi
有没有比较nginx和Apache之间交付pythonnetworking应用(Django在我的情况下)的性能(RPS,CPU,内存使用等)的研究? 有人可以用事实帮助我吗? 你会推荐哪种组合?