使用pyenv管理python版本 使用gunicorn加nginx部署在腾讯云

环境ubuntu

首先是安装pyenv,要保证系统有git使用官方提供的自动安装工具

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

将下面文件放在.bash里
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

然后重启控制台 exec$shell

python配置
* $ pyenv versions -- 查看系统当前安装的python列表

* $ pyenv install -v 3.5.1 -- 安装python

* $ pyenv uninstall 2.7.3 -- 卸载python

* $ pyenv rehash -- 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)


python切换
* $ pyenv global 3.4.0 -- 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

* $ pyenv local 2.7.3 -- 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

* $ pyenv shell pypy-2.2.1 -- 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。

* $ pyenv shell --unset

python优先级
shell > local > global

由于使用官方直接下载太慢了需要使用国内的源

pyenv搜狐镜像源加速:http://mirrors.sohu.com/python/
将下载的文件放在pyenv 的 cache文件夹下
执行pyenv install 对应版本号可以直接安装

创建虚拟环境 $ pyenv virtualenv python版本号 虚拟环境名字
若不指定python 版本,会汇报认使用当前环境python版本。
列出当前虚拟环境 pyenv virtualenvs
激活虚拟环境 pyenv activate
退出虚拟环境 pyenv deactivate
删除虚拟环境 pyenv uninstall my-virtual-env

下一步修改pip源地址

创建一个.pip/pip.conf
写入
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
就可以使用清华的python源,这个源和pypi的基本保持同步。

下一步使用gunicorn部署应用

主要配置参数
-c 使用配置文件
-b 绑定的ip:port
-w 工作进程数 推荐为cpu核的2-4倍 默认一个
--worker-class 工作方式 默认为同步
--worker-connections INT 最大连接数
--reload 代码改变重新加载
-D 是否为守护进程
日志相关
--access-logfile FILE
--error-logfile FILE

以上就是gunicorn基本的使用

下一步使用nginx反向代理gunicorn

什么是反向代理?
反向代理指的就是服务方和代理是在一个局域网中。
请求方到了这个代理,代理通过负载均衡 将请求发送到具体执行请求的机器,
再将请求发送回去。请求方不关心后台具体是那个服务器执行任务的。
而正向代理相反,请求方和代理服务器属于一个局域网。在服务方看来请求相当于是
代理发送过来的。
对于一些服务,直接使用gunicorn也可以。但是要配置https,使用nginx可以很方便的
配置,所以就加一个nginx

具体配置参考自http://www.cnblogs.com/hunttown/p/5759959.html
在sites-enable文件夹下可以将不同虚拟主机的配置文件分开来写。
运行nginx -t 检查配置文件
nginx -s reload进行重新加载

使用sentry进行日志管理

https://sentry.io/
可以很简单的集成到程序中,由于要给sentry发送日志,不可避免的会带来一些
网络开销,对于大多数网站来说这个开销影响很小。

当网站全部配置好后发现从网页上面打不开,后端程序也没有请求接收。检查刚才的配置发现没问题。
后来排查发现是这个新买的腾讯云服务器的安全控制那里只开放的公网的22端口,在安全策略中加入
80 443端口程序可以正常运行

gunicorn官方文档 http://docs.gunicorn.org/en/stable/settings.html

pyenv地址 https://github.com/yyuu/pyenv/

博客 https://www.97up.cn/post/148

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,451评论 6 428
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,629评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,773评论 6 342
  • 学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器。根据搜索的教程照做,对于原理一...
    Cocoa_Coder阅读 17,106评论 4 56
  • 有一段路,需要我们一起走。虽然艰辛,但是那里是永恒的美丽。[微笑][微笑][微笑]茫茫人海中,虽然岁月已经模糊了你...
    生活的ATM阅读 429评论 1 1