Articles of 瓶

BottlyPy – 如何阅读UWSGI_SCHEME?

我有一个使用BottlePy运行的Python应用程序。 此应用程序由Nginx路由: listen 443; ssl on; … location / { include uwsgi_params; uwsgi_param UWSGI_SCHEME https; uwsgi_pass unix:///var/run/uwsgi/uwsgi.sock; } 因为我使用的是BottlePy微框架,我不能调用request.is_secure() (没有这样的方法)。 但有没有办法从代码读取UWSGI_SCHEME值? 我的目标是从代码中确定请求使用了HTTPS。

如何在我的nginx + uwsgi环境中使environ 可用?

我在/www/app.py中写了一个简单的瓶子应用程序。 import bottle app = bottle.Bottle() @app.route('/') def index(): return 'hello from bottle' application=app 我已经在一个名为/ etc / nginx / sites-enabled / foo的文件中configuration了我的nginx虚拟主机: server { listen 8080; root /www; index index.html index.htm; server_name foo; location / { uwsgi_pass 127.0.0.1:9090; } } 我以这种方式启动nginx和uwsgi: service nginx restart uwsgi –socket 127.0.0.1:9090 –wsgi-file app.py 但是,当我尝试访问http://foo/我在网页中得到这个错误: Critical error while processing request: […]

如何返回二进制文件

我想使bottle python web服务提供二进制文件,如PDF,图片和EXEauthentication。 是否有可能使用瓶服务所有这些文件? 我很难find一个教程。 performance怎么样? 瓶python是否可以同时处理数十万次下载? 我打算用nginx uwsgi来使用它。

使用nginx和Python更新期间防止网站停机

我有一个在Ubuntu上托pipe的活动网站,使用nginx,网站是用Python编写的(CherryPy是服务器,Bottle是框架)。 我有一个shell脚本,复制python文件,通过现有的活网站,然后结果CherryPy重新启动服务器,以便它运行最新的代码(我想要它)。 问题是,在停止和开始的时间之间,默认的静态页面显示给那些试图在当时查看网站页面的不幸的人(希望他们没有提交表单)。 我在更新的时候看过这个页面。 我目前的设置是在两个反向代理nginx的端口上运行的网站的两个副本。 所以我想如果我更新一个,等待几秒钟,然后更新另一个网站将100%的时间,但这似乎并不是这样的情况? 比方说,我有端口8095和8096反向代理,都显示相同的网站,但在硬盘上它的两个相同的副本。 我更新端口8095的python文件,导致该端口closures,而CherryPy重新启动它。 难道每个人都不应该打8096? 它似乎并没有像这样工作。 我的文件复制脚本有8秒的延迟,根据CherryPy的日志,第二次停止重启6秒后重启,但是我看到了服务器closures时显示的默认静态离线页面。 我很困惑。 根据日志,总是有一个端口。 这是我的nginx.conf的一部分: upstream app_servers { server 127.0.0.1:8095; server 127.0.0.1:8096; } server { server_name www.mydomain.com; listen 80; error_page 502 503 /offline/offline.html; location /offline { alias /usr/share/nginx/html/mysite/1/views/; } location / { proxy_pass http://app_servers; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header […]

Python瓶vs uwsgi /瓶与nginx / uwsgi /瓶

我正在开发一个基于Python的应用程序(HTTP-REST或jsonrpc接口),将用于生产自动化testing环境。 这将连接到运行所有testing脚本的Java客户端。 即,不需要人工访问(除了testing应用程序本身)。 我们希望在Raspberry Pi上部署这个function,所以我希望它能够相对快速并占用很小的空间。 它可能不会获得大量的请求(在最大负载下,也许是每秒几个),但它应该能够运行并在很长一段时间内保持稳定。 由于其简单性(一个文件),我已经将Bottle作为框架解决了。 这是一个瓶子与瓶。 任何人认为烧瓶可能会更好,让我知道为什么。 我对Bottle的内置HTTP服务器的稳定性有些不确定,所以我正在评估这三个选项: 只使用瓶 – 作为http服务器+应用程序 在uwsgi之上使用Bottle – 使用uwsgi作为HTTP服务器 使用nginx / uwsgi使用Bottle 问题: 如果我没有做任何事情,但Python / uwsgi,是否有任何理由添加nginx的混合? uwsgi / bottle(或Flask)组合是否会被视为生产准备? 是否有可能通过使用Bottle的内置单独的HTTP服务器来获取任何东西?

nginx / bottle python – 将请求路由到另一个端口

我一直在寻找答案,我相信答案很简单,但我无法find答案。 我觉得我对nginx知之甚less 我有我的nginx实例上运行本地主机:8080和我的瓶服务器监听localhost:8081。 如果我从浏览器中打开地址,它们工作正常,但是当我尝试从localhost:8080上运行的应用程序访问时,我无法检索Bottle服务器生成的资源。 我需要做的是将所有对/ data /path的调用redirect到同一个域(localhost),而将另一个端口(8081),即我的瓶服务器正在侦听的那个端口。 这里是代码:Nginx: server { listen 8080; server_name localhost; root /Users/Diego/Desktop; location / { index index.html index.htm; } location /data/ { proxy_pass http://127.0.0.1:8081; } } 瓶服务器: @route('/') def printtest(): print 'success' return 'loaded page' @route('/<scenename>/data/<filename:path>') def testMethod(scenename,filename): print scenename, filename run(host='localhost', port=8081, debug=True) 调用浏览器localhost:8080,显示通过nginx提供的页面,但是如果我调用一个链接来检索存储在/data/directory/filename.json中的内容,Bottle似乎不会收到请求。 错误日志状态: 2013/04/16 18:50:52 [error] 3544#10612: *69 […]

nginx与烧瓶和memcached返回一些乱码字符

我试图用memcachedcachingPython / flask响应。 然后我想用nginx来提供caching。 我使用的代码如下所示: from flask import Flask, render_template from werkzeug.contrib.cache import MemcachedCache app = Flask(__name__) cache = MemcachedCache(['127.0.0.1:11211']) @app.route('/') def index(): index = cache.get('request:/') if index == None: index = render_template('index.html') cache.set('request:/', index, timeout=5 * 60) return index if __name__ == "__main__": app.run() 和一个像这样的nginx站点configuration: server { listen 80; location / { set $memcached_key […]

Bottle.py MVC“找不到模板”。

我想要做什么: 下面是我试图从\ mongodb \ blog \ blog.py运行的代码 @bottle.route('/') def blog_index(): cookie = bottle.request.get_cookie("session") username = sessions.get_username(cookie) return bottle.template('blog_template',username=username)) 从terminal运行blog.py并浏览到localhost:8082后,我得到以下错误: 找不到模板“blog_template”。 上周我有一个类似的问题,我通过将文件夹权限更改为777(只是为了排除权限问题)而解决了这个问题,但是目前在所有子文件夹中都设置为\ mongodb,而我仍然遇到相同的问题。 这些模板都位于bottle.py文档中指定的\ mongodb \ blog \ views中 目前对该文件夹的权限如下:( 调节器是我login的用户 ) -rwxrwxrwx 1 regulator regulator 718 Mar 23 2015 blog_template.tpl -rwxrwxrwx 1 regulator regulator 1211 Mar 23 2015 entry_template.tpl -rwxrwxrwx 1 regulator regulator 113 Mar […]

烧瓶龙卷风CTRL + C在Windows终止

下面的代码: from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop def start(app, port=8080): http_server = HTTPServer(WSGIContainer(app)) http_server.listen(port) try: IOLoop.instance().start() except KeyboardInterrupt: print "stop" IOLoop.instance().stop() 我想在Windows中使用CTRL + C或CTRL + PauseBreak来停止龙卷风服务器,但Ctrl + C不会在CMD中停止它。 Ctrl + PauseBreak不停止CMD并终止python.exe,但不显示“停止”。 如何在Windows中inputKeyboardInterrupt?

Webapp技术问题和build议

我决定写一个长篇介绍,以便让你更好地了解我正在努力实现的目标。 这将是我第一个真正的商业目标应用程序。 免责声明:尽pipe我一直在阅读任何东西,但是在过去的三年中,关于web开发和过去一年的任何python相关的工作,我仍然是一个新手(接受替代的noob拼写)。 该应用程序围绕集合。 邮票,卡片,硬币等用户将能够注册,从预定义的对象列表添加到他们的集合,显示他们的集合,标记一些交易对象,跟踪交易等预定义的对象列表将有大约20k个物件,每个物件大约有30-50个物件。 免责声明2:我可以在php中写这篇文章,我认为是第一个学习到web开发的工具,但我现在非常喜欢python,所以我非常偏向它。 我应该和mySQL保持联系还是用noSQL watters蘸我的脚趾? 从我一直在阅读的内容来看,NoSQL对于我正在尝试开发的内容可能是过度的,但是…您怎么看? Django的? 还是烧瓶? 我倾向于烧瓶。 主要推理背后是,我认为它更好,然后django后,摆脱了几天。 我可能会把它放在Rackspace上,因为它是最便宜的解决scheme,并且可以扩展,但是我真的很想听到来自VPS或Voxel主机的意见。 CloudHarmony速度testing表明,他们两个都比机架空间更好,但是我对这项服务还不太了解,或者testing如何。 * nix发行版? 任何select之间的差异? 任何我应该作为事实上的标准? networking服务器? 中间件wsgi? wohooo在我的脑海里的方式,所以如果也许有人可以指示我如何设置生产服务器的教程方向将是真棒(阅读这篇文章 ,它开始变得更有意义,但仍然不明白所有这一切。我需要nginx为例) 我所问的一些问题看起来可能真的很愚蠢,但是如果你也许记住,每个人都有一次在我的位置…… 🙂 提前感谢您的所有意见(答案或意见) 勘误表: 3之二。 GAE? 亚马逊? Rackspace公司? 其他云VM提供商? 我应该记住,我有一个愚蠢的愿望,需要扩大规模。 之后切换也很容易? 例如从GAE(bigtable)到另一个云虚拟机提供者(mySQL)(我知道web2py DAL可以同时使用,切换东西有多容易?) 5我的意思是扭曲,龙卷风,FAPWS等哪一个更好?