Get新知识:
nginx gunicorn flask 部署web项目
nginx 的安装和配置
一、安装编译工具及库文件
代码语言:javascript复制yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-devel
二、安装 PCRE(让 Nginx 支持 Rewrite 功能)
代码语言:javascript复制#下载最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xvf pcre-8.42.tar.gz
cd pcre-8.42
#安装编译
./configure
make && make install
#查看pcre版本
pcre-config --version
三、安装nginx
代码语言:javascript复制#下载
wget https://nginx.org/download/nginx-1.15.9.tar.gz
tar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
#编译安装
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42
make && make install
#查看版本
/usr/local/webserver/nginx/sbin/nginx -v
三、nginx配置
代码语言:javascript复制#创建 Nginx 运行使用的用户 www
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
# 也可以不新建用户,而是使用root用户即可
#设置包含多个配置文件,在nginx.conf底部添加
include vhost/*.conf;
#启动
/usr/local/webserver/nginx/sbin/nginx
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
# /usr/local/webserver/nginx/conf/vhost/demo.tilesrow.com.conf
server
{
# nginx 默认监听80 端口号,可以自定义
listen 80;
#listen [::]:80;
# server_name 就是本机地址
server_name xx.com;
# 默认访问的静态文件资源
index index.html index.htm index.php default.html default.htm default.php;
root /data/project/demo1;
access_log /usr/local/webserver/nginx/logs/xx.com.log;
}
内网映射端口配置
代码语言:javascript复制server
{
listen 80;
#listen [::]:80;
server_name demo.xx.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8001;
}
access_log /usr/local/webserver/nginx/logs/demo.xx.com.log;
}
结果配置如下:
代码语言:javascript复制server{
listen 8000;
server_name 192.168.123.201;
location {
include uwsgi_params;
# uwsgi_pass 127.0.0.1:9000;
proxy_pass http://127.0.0.1:9000/;
}
}
gunicorn 的安装配置
注意下python 项目的虚拟环境下。 使用pip install gunicorn 安装 gunicorn
安装好之后就可通过命令来启停服务。
项目的启动
使用下面命令进行项目的启动 gunicorn -w 5 -b 127.0.0.1:9000 wsgi:application 其中 127.0.0.1:9000 是flask应用程序的启动端口和IP,wsgi 是项目根目录下的一个启动项目文件名为wsgi.py application 是 flask实例对象名。
或者使用自定义的gunicorn.py 配置文件 gunicorn -c app/gunicorn_config.py wsgi:application 其中.py 是自定义的配置文件
如下:
代码语言:javascript复制import multiprocessing
bind = '0.0.0.0:9000' #绑定ip和端口号
backlog = 512 #监听队列
chdir = '/usr/local/webserver/nginx/software_project' #gunicorn要切换到的目的>工作目录
timeout = 40 #超时
worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = multiprocessing.cpu_count() * 2 #进程数
threads = 2 #指定每个进程开启的线程数
# 设置最大并发量
worker_connections = 2000
# 设置进程文件目录
pidfile = '/var/run/gunicorn.pid'
centos 使用 yum 在线安装python3
步骤:
- 安装epel
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- 安装 epel-release 工具
yum install epel-release
- 找到库里面支持的 python3 版本
yum list | grep python3 | more
- 安装python3
yum install python36
- 测试安装是否成功
python3
Linux下安装Python虚拟环境Virtualenv
需要先安装好python3 的环境。 1、首先,使用pip命令安装virtualenv模块:
代码语言:javascript复制# pip3 install virtualenv
测试是否安装成功
代码语言:javascript复制# virtualenv --version
安装成功,则会打印安装的virtualenv的版本号
3、创建独立运行环境,并命名
代码语言:javascript复制# virtualenv --no-site-packages venv
venv是虚拟环境的名称,可以根据自己的需要进行命名。 其中 直接使用命令 virtualenv 就可以创建一个独立的Python运行环境,加上参数**–no-site-packages**,可以将已经安装到系统Python环境中的第三方包都不制到独立环境中,这样我们就可以得到一个不带任何第三方包的Python环境了。
4、新建的Python环境被放到了当前目录下的venv目录,有了venv这个Python环境,我们就可以开始使用这个虚拟环境了,需将其激活:
代码语言:javascript复制# source venv/bin/activate
需要注意的是source 虚拟环境下的bin目录下的activate ,激活成功后,我们可以看到终端命令提示符前多了虚拟环境的名称
5、如果暂时不用此虚拟环境了,退出venv环境
代码语言:javascript复制(venv) # deactivate
6、其他命令
代码语言:javascript复制① 查看当前虚拟机环境目录
# worken
代码语言:javascript复制②切换虚拟环境
# workon venv2
代码语言:javascript复制③退出虚拟环境
# deactivate
代码语言:javascript复制④删除虚拟环境
# rmvirtualenv venv
安装并配置好 python 虚拟环境 virtualenv 好 之后i,就是安装好项目所需的第三方包,就可以将项目部署到服务器上了。