centos7+python3+flask+nginx+uwsgi+virtualenv+多站点+https

python安装

安装前运行

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y

下载安装包

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

如果提示没有wget则运行

yum install wget

开始安装

# 系统默认的是python2.7,yum会使用2.7,所以安装3.6完不要去替换系统的
# yum只有python3.4的源 所以不用yum来装

tar -xzvf Python-3.6.8.tgz
cd  Python-3.6.0/
# 把Python3.6安装到 /usr/local 目录
./configure --prefix=/usr/local/python3
sudo make && sudo make install
# 创建python3与pip3软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

CentOS查看和修改PATH环境变量的方法


查看PATH:echo $PATH
以添加mongodb server为列
修改方法一:

export PATH=/usr/local/mongodb/bin:$PATH

//配置完后可以通过echo $PATH查看配置结果。
生效方法:立即生效
有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置
用户局限:仅对当前用户

修改方法二:
通过修改.bashrc文件:
vim ~/.bashrc
//在最后一行添上:

export PATH=/usr/local/mongodb/bin:$PATH

生效方法:(有以下两种)
1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
2、输入“source ~/.bashrc”命令,立即生效
有效期限:永久有效
用户局限:仅对当前用户

修改方法三:
通过修改profile文件:
vim /etc/profile
/export PATH //找到设置PATH的行,添加

export PATH=/usr/local/mongodb/bin:$PATH

生效方法:系统重启
有效期限:永久有效
用户局限:对所有用户

修改方法四:
通过修改environment文件:
vim /etc/environment
在PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"中加入“:/usr/local/mongodb/bin”
生效方法:系统重启
有效期限:永久有效
用户局限:对所有用户

nginx


  1. 安装gcc
    安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++

2.PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

3.zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

4.OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

5.使用wget命令下载(推荐)。确保系统已经安装了wget,如果没有安装,执行 yum install wget 安装。

wget -c https://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
# 启动停止退出重启nginx
nginx
nginx -s stop
nginx -s quit
nginx -s reload
# 查询nginx进程:
ps aux|grep nginx
# 开机自启动,即在rc.local增加启动代码就可以了。
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:
chmod 755 rc.local

6.配置nginx

用这段取代/usr/local/nginx/conf/nginx.conf的相应部分

  • 普通http
server {
        listen       80;
        server_name  _;
        # server_name xxx.com;
 
        #charset koi8-r;
        location / {
            include uwsgi_params;
            uwsgi_pass  127.0.0.1:3031;
        }
}

  • https
server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      cert.pem;
    ssl_certificate_key  cert.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
            include uwsgi_params;
            uwsgi_pass  127.0.0.1:3031;
        }
}

uwsgi


1.安装uwsgi

pip3 install uwsgi

2.配置

[uwsgi]
chdir = /code/quant
#home = /usr/local/bin
wsgi-file = web_server.py
callable = app
socket = 127.0.0.1:3031
master = true         //主进程
vhost = true          //多站模式
no-stie = true        //多站模式时不设置入口模块和文件
workers = 2           //子进程数
reload-mercy = 10
vacuum = true         //退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
#daemonize = /code/quant/logs/uwsgi3031.log

virtualenv


# 用来隔离环境的
pip3 install virtualenv

# 指定python3来创建环境目录
virtualenv -p /usr/local/bin/python3 env3

# 以后安装模块先进入env3环境再安装
. env3/bin/activate
pip3 install ...

# 退出环境
deactivate

flask


你可能感兴趣的:(centos7+python3+flask+nginx+uwsgi+virtualenv+多站点+https)