gunicorn

Linux随笔 - vi/vim 编辑器显示行号

怎甘沉沦 提交于 2020-02-27 14:35:19
【前置条件】 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git。创建demo参照: 创建一个flask api-demo(响应体显示中文) git地址:https://github.com/wangju003/flaskDemo.git 先在本地试试用gunicorn启动falsk 在terminal中执行gunicorn命令通过wsgi文件启动flask: gunicorn -w 4 -b 127.0.0.1:5000 wsgi:application 启动效果: 通过git将demo clone至centOS,项目目录建议放在 /home/www/(放在哪里不必纠结,因为最终会通过jenkins自动布署Job,所以项目会存放在/.jenkins目录下。这里只做测试gunicorn+nginx启动falsk) 【正式配置】 环境:centOS7 tips:如果安装其它环境,需要java环境,不需要特别安装jdk,使用自带的openJDK就可以。openJDK不能满足条件时,再安装jdk,且无须自自己配置环境变量(配置过,有印象是这样的) step1:安装python3,pip3,python虚拟环境,我这些在之前环境布署之已经安装好,这里不再缀述。 具体搭建过程,参照: centOS安装python3 以及解决

动手实现web框架

你说的曾经没有我的故事 提交于 2020-02-26 06:36:44
后端开发中,我们经常使用web框架来实现各种应用,比如python中的flask,django等,go语言中的gin等。web框架提供了很多现成的工具,大大加快了开发速度。这次,我们将动手实现自己的一个web框架。 当我们在浏览器打开链接发起请求之后发生了什么? http请求会经过WSGI服务器转发给web框架比如flask,flask处理请求并返回响应。WSGI就相当于中间商,处理客户端和框架之间的信息交换。那么WSGI到底是个啥? WSGI WSGI全称服务器网关接口,你想想,针对每一种服务器都需要实现对应的处理接口是件很麻烦的事,WSGI规定了统一的应用接口实现,具体来说,WSGI规定了application应该实现一个可调用的对象(函数,类,方法或者带__call__的实例),这个对象应该接受两个位置参数: 环境变量(比如header信息,状态码等) 回调函数(WSGI服务器负责),用来发送http状态和header等 同时,该对象需要返回可迭代的响应文本。 WSGI实现 为了充分理解WSGI,我们定义一个application,参数为environ和回调函数。 def app(environ, start_response): response_body = b"Hello, World!" status = "200 OK" #

第 430 期 Python 周刊

限于喜欢 提交于 2020-02-26 02:31:22
文章,教程和讲座 使你的 Python 程序运行快一点 链接: https://martinheinz.dev/blog/13 不喜欢 Python 语言的人总是说它的运行速度很慢。对于特定的程序(无论使用何种编程语言), 它的快慢,很大程度上取决于编写该程序的开发人员。让我们尝试改善 Python 程序的性能, 证明那些人是错的 Numba 使 Python 运行速度提高了1000倍! 链接: https://www.youtube.com/watch?v=x58W9A2lnQc Numba 是Python 和 Numpy 子集的即时编译器。该视频的前半部分主要介绍 Numba 基本信息,并着重介绍了大家在使用 Numba 时的一些常见错误。剩下的视频提出了一个基于现实世界的问题,在单线程和多线程情况下,使用 Numba 最多可获得1000倍的加速效果。 如何在 gevent(uWSGI 和 Gunicorn)中使用 Flask 链接: https://iximiuz.com/en/posts/flask-gevent-tutorial 创建异步 Flask Web 应用,并在 Nginx 反向代理后使用 uWSGI 或 Gunicorn 运行它。 ASGI 简介:异步 Python Web 生态系统的出现 链接: https://florimond.dev/blog

在阿里云部署 Flask 应用

依然范特西╮ 提交于 2020-02-25 22:48:49
在阿里云部署 Flask 应用 本文简单记录在阿里云部署 Flask 应用的过程。由于我的应用是业余的,Demo 性质的( 在简书中有说明过初衷 ),很多操作也是现搜现用,怎么方便怎么来,所以并不适合真正的生产要求。这更有点像是知乎问题“自己拥有一台服务器可以做哪些很酷的事情?”的一个稍稍跑题的回答吧。 云服务器购买 双十二时以 1 折(¥799.00/3年起) 购买 了一台 ECS共享型n4 服务器。操作系统选择了 ubuntu_18_04_64,因为 Ubuntu 比 CentOS 更适合“把玩”。 环境搭建 前期准备 安装本地 SSH 客户端 我本地是 Windows 系统,可以选择的有 SecureCRT,Putty,Bitvise SSH 等。最后我选择的是 Bitvise SSH,个人用户免费,界面也友好。可以在官网 下载 (速度慢),也可以在 CSDN 资源 下载 。 添加安全组规则 在阿里云控制台,添加“入方向”的安全组规则,端口范围:80/80,授权对象:0.0.0.0/0。这样才能通过 80 端口访问你的 Web 应用程序。 域名解析 我的域名也是在阿里云注册的,可以在域名控制台进行域名解析设置。主机记录填写“@”或“www”域名前缀,效果是“ http://example.com/ ”或“ http://www.example.com/ ”

DjangoBlog部署教程

我怕爱的太早我们不能终老 提交于 2020-02-20 07:48:13
本篇文章将会手把手教你如何部署DjangoBlog项目,首先介绍下我这里的基本环境,请大家仔细阅读此部分,下面的教程都会使用这些约定来介绍: 系统是 ubuntu 18.04 LTS 假设你的域名是 www.djangoblog.com 。 python虚拟环境目录在 ~/python/env djangoblog源码位置在 ~/python/DjangoBlog 登入用户 server 编辑器使用vim,你可以使用你喜欢的编辑器。 准备工作 升级系统 首先需要升级系统到最新版,终端下执行: sudo apt update sudo apt upgrade -y 待完成更新之后,建议重新启动下系统,再进行后面的操作。终端下执行: sudo reboot 待系统启动后,可以开始安装依赖的mysql以及python环境了。 安装依赖 终端下执行: sudo apt install mysql-server -y #安装mysql sudo apt install python3-dev python3-pip python-pip memcached -y #安装pip和memcached sudo apt install supervisor -y sudo apt install nginx -y sudo apt-get install python-dev default

conda+Flask+gunicorn+Nginx开发web-api

送分小仙女□ 提交于 2020-02-05 01:43:35
文章目录 正文 1.各部分作用 2.环境搭建 2-1.安装conda并创建独立虚拟环境 2-2.进入虚拟环境并安装flask支持 2-3.api开发例子 2-4.安装 gunicorn搭载web项目 2-5.安装nginx连通gunicorn服务器 正文 参考https://blog.csdn.net/llwang_10/article/details/80251270 1.各部分作用 1)conda conda提供了python运行的虚拟环境管理以及包管理,如果服务器上有多个环境需求.使用conda保证环境的干净整洁很重要 2)flask Flask是一个使用 Python 编写的轻量级 Web 应用框架,用来开发python版的web-api 3)gunicorn gunicorn是一个Web服务器,它实现了WSGI协议 4)nginx Nginx是一个提供静态文件访问的web服务,然而,它不能直接执行托管Python应用程序,而uWSGI解决了这个问题。让我们在虚拟环境中安装uWSGI,稍候再配置Nginx和uWSGI之间的交互。 2.环境搭建 2-1.安装conda并创建独立虚拟环境 # 安装过程就略了 # 创建虚拟环境python_web conda create -n python_web python = 3.7.3 2-2.进入虚拟环境并安装flask支持 #

Using Django Models in standalone script - Website not updating

孤街醉人 提交于 2020-02-04 22:56:45
问题 I am trying to update records in my SQLite3 DB using the Django ORM and the update() function. I can see that after running the update() function in my standalone script, the database has in-fact been updated, but the changes are not reflected on my website until I restart gunicorn with: sudo systemctl restart gunicorn I suspect the issue has to do with the way I import my models into my standalone script. ROOT_DIR = /path/to/root/dir sys.path.insert(0, ROOT_DIR) os.environ.setdefault('DJANGO

Django Channels Nginx production

早过忘川 提交于 2020-02-01 03:15:11
问题 I have a django project and recently added channels to use websockets. This seems to all work fine, but the problem I have is to get the production ready. My setup is as follows: Nginx web server Gunicorn for django SSL enabled Since I have added channels to the mix. I have spent the last day trying to get it to work. On all the turtotials they say you run daphne on some port then show how to setup nginx for that. But what about having gunicorn serving django? So now I have guncorn running

将flask部署到服务器

空扰寡人 提交于 2020-01-31 22:57:07
声明,本博客写给自己看的,相当于云笔记,亲爱的陌生人请勿尝试!!! 所需环境 gunicorn nginx supervisor gunicorn 安装gunicorn pip安装gunicorn pip install gunicorn 其实不需要nginx,gunicorn便可运行简单的flask应用,创建如下文件 #main.py from flask import Flask app = Flask ( __name__ ) app . route ( '/' ) def index ( ) : return 'hello world' if __name__ == '__main__' : app . run ( ) 然后运行gunicorn gunicorn -w 4 main:app -b 0.0.0.0:8000 便可在浏览器中看到hello world信息了 但是gunicorn对静态文件支持不好,所以仍需要使用nginx做反向代理 gunicorn关闭操作如下 pstree -ap | grep gunicorn 得到以下结果 | | -grep,4698 --color = auto gunicorn | ` -gunicorn,4238 /usr/bin/gunicorn -w 4 run_app:app -b 0.0.0.0:8000 | |