在CentOS7上部署Flask、nginx、uwsgi环境(纯干货)

前言

近期弄了一个小程序应用,后台选用的Python Flask。由于是第一次实际应用,而本地开发环境使用的是Windows和PyCharm,在最终部署到生产环境的时候就“麻爪”了,于是开始在网上搜索相关文章。搜到的文章要不有些年头,要不跟我情况不太一样,还有一些安装无用的东西太多。最终结合几个文章加上一天的尝试探索,找到了一个最简成功的过程方法,先整理分享,以期对所需之人有所助益。

 

正文

本地项目环境:系统Windows10、开发工具PyCharm、框架flask_script、Python2.7

目标部署环境:阿里云ECS、系统CentOS7.1、Nginx 、uWSGI

使用工具:Xshell6、Xftp6

 

首先就是一台CentOS7服务器了,本人是赶在双十一在阿里云上购买的ECS,最近是双十二活动各位有意下手的抓紧了。服务器管理密码在控制台中进行重置修改。言归正传,服务器购买并准备好后,你还需要Xshell6和Xftp6这两个远程命令行和文件管理工具(当然你还可以选用其他,这两个也有个人免费版下载哦。下载方式搜一下)。

必要工具都准备好了,下面开始。运行Xshell,新建会话连接,输入目标主机IP地址,确认输入用户和密码,成功连接后

在CentOS7上部署Flask、nginx、uwsgi环境(纯干货)_第1张图片

系统默认自带Python2.7,实际情况可以输入python -v查看;

首先安装pip

  1. yum -y install pip    后面会提示更新,执行pip install --upgrade pip 更新
  2. 安装setup工具    sudo yum install python-setuptools
  3. 安装虚拟环境     sudo pip install virtualenv
  4. 安装nginx           sudo yum install nginx
  5. 安装编译工具包  sudo yum groupinstall "Development Tools"
  6. python.h库          sudo yum install python-devel
  7. 安装uwsgi           sudo pip install uwsgi

至此,所需要的基础环境包都装好了,此时你可以执行sudo nginx来测试一下。如果你已经在阿里云控制台安全组规则开放了服务器的80端口,就可以在浏览器中输入ip地址来查看。没问题的话应该可以看到下面的页面

在CentOS7上部署Flask、nginx、uwsgi环境(纯干货)_第2张图片

 

 

接下来就是部署自己的项目到服务器。这时候就用到xftp了,同样连接到服务器,操作界面如图

在CentOS7上部署Flask、nginx、uwsgi环境(纯干货)_第3张图片

首先使用xftp在服务器上创建要部署的环境目录,然后在xshell中使用cd命令切换到项目目录下

创建虚拟环境 virtualenv venv      (venv为虚拟环境目录名字) 看到done. 说明成功

激活    source venv/bin/activate     (venv同上)

在CentOS7上部署Flask、nginx、uwsgi环境(纯干货)_第4张图片

前面的venv表明我们当前进入到了python的虚拟环境。

此时我们可以用xftp上传我们项目的requirements.txt,即项目库列表到服务器目录下,再执行pip install -r requirements.txt来安装项目所需库。结束后我们可以执行deactivate来退出虚拟环境。

上传项目文件到服务器,本地创建好nginx的conf配置文件和uwsgi的ini配置文件并上传到服务器项目目录下。如果配置正确运行nginx,运行uwsgi,在浏览器中访问就能看到项目运行效果了。不同的系统命令不一样,包括安装库的名称等。简单列举Centos下nginx的几个基本命令

  • nginx启动sudo nginx -c /xxx/xxx/xx.conf
  • nginx重启sudo nginx -s reopen     (reload)
  • nginx停止sudo nginx -s stop
  • uwsgi 启动    sudo uwsgi --ini   xxx/xx/xx.ini
  • uwsgi停止 sudo pkill -f uwsgi -9

关于一些库的作用,还有配置文件的参数,及注意事项,等我搞清楚后另行说明。

纯属分享,不喜勿喷,谢谢!

你可能感兴趣的:(XinDe)