flask环境布署--废弃不用,只留做备份

【前置条件】html

建立1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git。建立demo参照:建立一个flask api-demo(响应体显示中文)java

 git地址:https://github.com/wangju003/flaskDemo.gitpython

先在本地试试用gunicorn启动falsklinux

在terminal中执行gunicorn命令经过wsgi文件启动flask:nginx

gunicorn -w 4 -b 127.0.0.1:5000 wsgi:application

启动效果:git

 

经过git将demo clone至centOS,项目目录建议放在 /home/www/(放在哪里没必要纠结,由于最终会经过jenkins自动布署Job,因此项目会存放在/.jenkins目录下。这里只作测试gunicorn+nginx启动falsk)github

【正式配置】web

环境:centOS7flask

tips:若是安装其它环境,须要java环境,不须要特别安装jdk,使用自带的openJDK就能够。openJDK不能知足条件时,再安装jdk,且无须自本身配置环境变量(配置过,有印象是这样的)vim

step1:安装python3,pip3,python虚拟环境,我这些在以前环境布署之已经安装好,这里再也不缀述。

具体搭建过程,参照:

centOS安装python3 以及解决 导入ssl包出错的问题

centOS7建立python虚拟环境

 

step2:

  • 建立虚拟环境flaskApi
  • 安装requirement.txt依赖(注意先切换到requirement.txt文件所在的目录)
  • 安装gunicorn(以前在本地中已经安装,并导入到requirement.txt文件中,因此上面1小步已经完成gunicorn的安装了)
1 [root@67 flaskDemo]# mkvirtualenv flaskApi #建立虚拟环境
3 (flaskApi) [root@67 flaskDemo]# pip install -r requirements.txt#安装依赖

 里程碑,经过gunicorn运行flask:

首先查看一下服务器的ip地址,记录下来:10.2.1.92

1 (flaskApi) [root@67 flaskDemo]# ifconfig
2 ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
3         inet 10.2.1.92  netmask 255.255.255.0  broadcast 10.2.1.255

经过gunicorn运行wsgi.py文件启动flask,ip地址用上一步查询获得的10.2.1.92,端口号指定为5000(自定义)

1 (flaskApi) [root@67 flaskDemo]# ls
2 app  manage.py  requirements.txt  settings.py  wsgi.py
3 (flaskApi) [root@67 flaskDemo]# gunicorn -w 4 -b 10.2.1.92:5000 wsgi:application 

启动后:

(flaskApi) [root@67 flaskDemo]# gunicorn -w 4 -b 10.2.1.92:5000 wsgi:application
[2019-09-17 14:18:31 +0800] [8945] [INFO] Starting gunicorn 19.9.0
[2019-09-17 14:18:31 +0800] [8945] [INFO] Listening at: http://10.2.1.92:5000 (8945)
[2019-09-17 14:18:31 +0800] [8945] [INFO] Using worker: sync
[2019-09-17 14:18:31 +0800] [8948] [INFO] Booting worker with pid: 8948
[2019-09-17 14:18:31 +0800] [8949] [INFO] Booting worker with pid: 8949
[2019-09-17 14:18:31 +0800] [8950] [INFO] Booting worker with pid: 8950
[2019-09-17 14:18:31 +0800] [8952] [INFO] Booting worker with pid: 8952

打开网址验证一下:此时应该能够展现响应内容了:

 

step3:安装nginx

yum -y install nginx

遇到的问题:

提示没有可用的软件包

解决办法:

Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包

启动nginx

(flaskApi) [root@67 flaskDemo]# systemctl start nginx

遇到的问题:

1 Redirecting to /bin/systemctl start nginx.service
2 Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

解决办法:

centos7 ngxin启动失败:Job for nginx.service failed(80端口被占用的解决办法)

中止 nginx 服务

 (flaskApi) [root@67 flaskDemo]# systemctl stop nginx

重启 nginx 服务

systemctl restart  nginx

平滑启动:

nginx配置改动了,能够从新加载而不用先关闭再打开

nginx -s reload

启动后 ,在浏览器中 输入服务器的 ip 地址,就能够看到--记得加上指定nginx启动的端口号(我修改了nginx启动端口为8001)

http://10.2.1.92:8001

到这里 yum 安装 nginx 就完成了

 step4:配置nginx

 1  server {
 2     listen       80 default_server;
 3         listen       [::]:80 default_server;
 4         server_name  gogotest.com;
 5         root         /usr/share/nginx/html;
 6 
 7         # Load configuration files for the default server block.
 8         include /etc/nginx/default.d/*.conf;
 9 
10         location / {
11                 proxy_pass http:/http://10.2.1.92:5000;
12                 proxy_set_header Host $host;
13                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
14         }

 

里程碑:

 配置好后打开本地浏览器,输入域名,应该就能访问了

 

step5:安装superversion

step6:配置superversion,注意command后的参数是,虚拟环境xxx,gunicorn的启动命令

里程碑:使用superversion启动gunicorn,输入配置地址能够正常访问

step7:安装fabric(不必定要配置吧?是否是能够用jenkins-webhoo提交代码就自动布署呢)能够体验一下看看

里程碑:

首先修改respone内容,而后在本地执行命令:fab deploy

而后访问测试网址,查看响应内容是否是更新了

 

 

明天从这里开始吧

https://pdf-lib.org/Home/Details/8536

如今的问题是在centos上经过gunicorn启动服务后,外网不能访问

如今试一下uwsgi的方式 

https://www.jianshu.com/p/be2b587a900e

 

 

 

问题:

Failed to stop iptalbes.service: Unit iptalbes.service not loaded.

 https://blog.csdn.net/c233728461/article/details/52679558

 

参考文档:

https://www.jianshu.com/p/da28ec28ef4b

https://www.cnblogs.com/mqxs/p/8706665.html(ip地址要写服务器地址的坑我踩过了)

 

 

[root@67 nginx]# nginx -t 
nginx: [emerg] unexpected "}" in /etc/nginx/nginx.conf:51
nginx: configuration file /etc/nginx/nginx.conf test failed
[root@67 nginx]# 

 

 

 

 

linux什么编辑器能够显示行号

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

再次测试:

 

[root@67 nginx]# nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
相关文章
相关标签/搜索