nginx+gunicorn项目部署
程序员文章站
2024-01-16 16:23:05
2.1.下载python3.6 2.2.解压安装包 在/etc/supervisord.d目录下添加一个logo.ini配置文件 vim /etc/supervisord.d/logo.ini 内容如下: 配置信息 配置改为 这样启动之后80端口就可以转发到8000端口了 若出现一下内容,则表示配置 ......
1.1安装虚拟环境
创建文件夹
mkdir data 目录文件夹 cd data 进入data文件夹 mkdir nginx 创建安装nginx的文件夹 mkdir server 存放代码的文件夹 mkdir logs 存放日志的文件夹 mkdir backup 备份代码的文件夹 mkdir softs 软件存放的位置 mkdir virtual 虚拟环境的位置 mkdir scripts 脚本的运行位置 mkdir scp_codes 上传的代码
安装python环境
第一步:安装wget(如果已经安装跳过)
yum install wget
第二步:安装python3.6(如果已经安装跳过)
2.1.下载python3.6
wget http://cdn.npm.taobao.org/dist/python/3.6.5/python-3.6.5.tgz
2.2.解压安装包
tar -zxvf python-3.6.5.tgz
2.3安装python3.6的依赖包
yum install -y gcc zlib* 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
2.4.配置安装路径为/usr/local/python3
./configure --prefix=/usr/local/python3 --with-ssl # 安装在哪个路径 make && make install #编译解析环境
2.5.将python3.6的路径加入到path中
echo "export path=$path:/usr/local/python3/bin/" >>/etc/profile source /etc/profile
2.6.建立软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装supervisor
yum install supervisor -y 如果报如下错误,安装yum的扩展源 安装yum的扩展源 yum install epel-*
添加supervisor的配置
在/etc/supervisord.d目录下添加一个logo.ini配置文件
vim /etc/supervisord.d/logo.ini
内容如下:
[program:logo_api_server] directory = /data/api-service #代码存放的地方 command = /usr/local/python3/bin/gunicorn -w 4 -b :5005 logoseverapi:app #-w的参数根据cpu的核数来定,不要超过cpu的核数 \#process_name = %(process_num)s ; process_name expr (default %(program_name)s) \#process_name = %(process_num)s \#numprocs = 4 ; number of processes copies to start (def 1) numprocs_start = 1 autostart = true ; start at supervisord start (default: true) autorestart = unexpected ; whether/when to restart (default: unexpected) startsecs = 10 ; number of secs prog must stay running (def. 1) startretries = 3 ; max # of serial start failures (default 3) user = dev redirect_stderr = true stdout_logfile_maxbytes = 20mb stdout_logfile_backups = 20 stdout_logfile = /data/api-service/logs/supervisor.log
配置信息
[program:logo_api_server] directory = /root/data/server/logo_api/ command = /root/data/virtual/logo/bin/gunicorn -w 1 -b :5005 logoseverapi:app #-w的参数根据cpu的核数来定,不要超过cpu的核数 #process_name = %(process_num)s ; process_name expr (default %(program_name)s) #process_name = %(process_num)s #numprocs = 4 ; number of processes copies to start (def 1) numprocs_start = 1 autostart = true ; start at supervisord start (default: true) autorestart = unexpected ; whether/when to restart (default: unexpected) startsecs = 10 ; number of secs prog must stay running (def. 1) startretries = 3 ; max # of serial start failures (default 3) user = root redirect_stderr = true stdout_logfile_maxbytes = 20mb stdout_logfile_backups = 20 stdout_logfile = /root/data/logs/supervisor.log
安装虚拟环境
apt-get install python-virtualenv (ubuntu已经安装过,可省略) virtualenv -p /usr/bin/python3 logo (采用他,安装在本文件夹,) mkvirtualenv api_server(不要用它,它会自己安装到其他地方) source api_server/bin/activate (在虚拟环境的active进入虚拟环境) 安装的软件会在虚拟环境下的bin目录下
安装nginx的环境
解压 cd ~/data/softs/ tar xf pcre-8.39.tar.gz 配置 cd ~/data/softs/pcre-8.39 ./configure 编译 make 安装 sudo make install
安装nginx
解压 cd ~/data/softs/ tar xf nginx-1.10.2.tar.gz 配置 cd nginx-1.10.2/ ./configure --prefix=/root/data/nginx 安装在root/data下面的nginx文件夹 编译 make 安装 make install 查看进程 ps aux | grep nginx
nginx简单基础操作
检查 sudo ~/data/nginx/sbin/nginx -t 开启 sudo ~/data/nginx/sbin/nginx 关闭 sudo ~/data/nginx/sbin/nginx -s stop 重载 sudo ~/data/nginx/sbin/nginx -s reload 开进程管理 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
4、配置nginx
配置改为
server { listen 80; server_name example.org; # 这是host机器的外部域名,用地址也行 location / { proxy_pass http://127.0.0.1:8000; # 这里是指向 gunicorn host 的服务地址 proxy_set_header host $host; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } } 复制代码
这样启动之后80端口就可以转发到8000端口了
5、检查配置
nginx -t 复制代码
若出现一下内容,则表示配置成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 复制代码
6、更新nginx配置
nginx -s reload 复制代码
在已经运行了gunicorn的前提下,在浏览器访问127.0.0.1就会出现hello world!了
1、首先安装gunicorn
pip install gunicorn 复制代码
2、在入口文件的app.run()加上以下内容
from werkzeug.contrib.fixers import proxyfix app.wsgi_app = proxyfix(app.wsgi_app) 复制代码
例:
from flask import flask app = flask(__name__) @app.route('/') def hello_world(): return 'hello world!' if __name__ == '__main__': from werkzeug.contrib.fixers import proxyfix app.wsgi_app = proxyfix(app.wsgi_app) app.run() 复制代码
3、启动gunicorn
最简单的方式为
gunicorn 入口文件名:app 复制代码
默认是监听127.0.0.1:8000
如果是要处理高并发则要开多个进程和修改监听端口的画
gunicorn -w 4 -b 127.0.0.1:8000 入口文件名:app 复制代码保存在supervisord 里面的etc/supervisord.d目录下添加一个logo.ini配置文件
这样就可以启动4个进程同时处理http请求,提高系统的使用效率及性能。 还可以把端口8000改为其他
而在实际应用中,应使用后台执行的方式启动服务
nohup 启动服务的命令 & 复制代码
即
nohup gunicorn -w 4 -b 127.0.0.1:8000 入口文件名:app & 复制代码
这时你可以在本机的浏览器*问127.0.0.1:8000,浏览器上就会出现hello world!
注意:如果是想通过外网访问的话就要把ip改为内网的ip
7、重启gunicorn
输入命令
pstree -ap|grep gunicorn
mkdir /data
2.10从git上面将代码下载下来,git在内网,如果是线上请将git下载下来然后通过ftp上传到线上坏境
cd /data git clone http://zhangxiaoyang:messi1020@git.epweike.net:3000/graphics/logo_api api-servicels -
2.11安装程序依赖包
cd /data/api-service/ yum install cairo-devel pip3 install --upgrade pip pip3 install -r requirements.txt
2.22 使用supervisor进行线程监控
/usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
上一篇: 哈尔滨师范大学什么层次?哈尔滨师范大学录取分数线2021是多少?
下一篇: VB.NET语法小结