如何将Flask项目部署在Ubuntu系统的阿里云主机中(详细完整版:下)

如何将Flask项目部署在Ubuntu系统的阿里云主机中(详细完整版:下)


问题重述

上一篇我们谈到了总的解决方案,一起探索了flask项目部署前的上传准备过程,以及分享了几个好用的软件和python模块,若有对上一篇文章感兴趣的朋友,可以跳过去看一下
传送门【https://blog.csdn.net/weixin_39212776/article/details/81318553
这篇文章我们主要来解决的是flask项目云上正式部署的问题,所以,如果你只关注云上部署的部分,这篇文章也是值得借鉴的。下面我会按照我探索过得可行的思路来写,也会继续分享一些我们在部署过程中容易踩到的坑。
如果你想在一台网络服务器上配置多个web server,改文章一样适用,在最后关于Nginx的配置会详解

解决的思路与方案

在上一篇文章完成后,我们的flask项目已经被打包并压缩为tar.bz2的格式发送到云主机中了,如若没有的可以查看我的上一篇文章,那里将为你详细讲解,这里我们不再赘述。

第二步,flask项目的正式部署

  • 连接到我们的云主机
    这一步相信大家都会,固定的模式:打开cmd;输入如下:
ssh root@云主机的公网ip地址
root@云主机的公网ip地址's password:#输入密码,隐藏了的,不要以为自己键盘坏掉了

# 出现以下说明登录成功了,也就是成功连接上我们自己的云主机了,
#    我们便可以通过命令行控制它了
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-117-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service !

Last login: Tue Jul 31 13:05:05 2018 from 101.207.0.179
  • 根据项目的需求安装python2.x或python3.x
    Ubuntu 的默认环境已经预装 python 2.7 ,所以如果我们的项目的运行环境只需要python2.7的版本就行了,我们就无需装python3了,此时只需要安装 python 的 pip 安装工具即可,推荐一篇好文章,快速安装:
    https://www.cnblogs.com/smail-bao/p/6483759.html
    那如果我们的项目是所依赖的环境是python3以上的版本,那么我们就有必要安装一个python3.几了,同样的推荐一篇简短的文章:
    https://blog.csdn.net/Qin605/article/details/77763541

  • 使用pip安装python项目部署的必备利器——virtualenv(虚拟环境)
    在使用pip前先确定自己的pip是属于python2的还是python3的,因为不同的python版本的pip其所装的第三方包也是属于各自的主人python版本的,这一步不弄清楚在后面会吃很多亏的,我就是那因为在这样,导致我装的virtualenv是属于python2版本的,而我的flask项目是属于python3版本的,后面发现错了才后悔莫及啊!可以用如下命令检查pip的版本极其属于哪个python版本:

    root@WeiLy:~# pip -V
    pip 10.0.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

    看到了吧,我的pip是是属于python2的,那我们如果测试一下pip3呢,又会是什么样的呢?

    root@WeiLy:~# pip3 -V
    pip 10.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

    这下只到了吧,我们装的python3自带pip工具,但是改名为pip3了,你如果觉得这样不爽也可以给pip3重命名为pip嘛,so easy 啦,只需一个命令便可使pip软链接到pip3,但是要注意貌似过一段时间系统又会给重置回来哦,但是现改现用还是有效的嘛
    提示(可以先跳过这个提示,若后面遇到这个问题再回来解决,没有则罢):

    如若sudo时遇到提示“unable to resolve host xxxx(XXXX是主机名)”时,我们可以稍作更改就可以让这个提示消失了:
    既然是host的问题,那么我们就进入/etc/hosts看看
    输入指令: sudo vi /etc/hosts

        cd /etc/hosts
        sudo vi /etc/hosts

    显示

     127.0.0.1       ubuntu  # 改为我们的主机名XXX
       # The following lines are desirable for IPv6 capable hosts 
    。。。。。。。。。。。。。。省略

    这里默认的主机名是ubuntu而没有我们的xxxx
    我在这里发现了问题的源头:我改了主机名,而/etc/hosts这个文件的内容没有更改。把ubuntu改成xxxx就好了!

    sudo  alias pip='pip3'

    搞清楚这些后,我们就可以安装我们需要的版本的virtualenv了,我这里安装python3.6版本的virtualenv

    sudo  pip install virtualenv
  • 安装Nginx
    [Nginx| http://nginx.com/ ]是轻量级、性能强、占用资源少,能很好的处理高并发的反向代理软件。起初我也不知道为什么要用Nginx,心里想难到不可以直接运行Flask项目,就像在自己的电脑上测试时也没有安装这个东西啊?一头雾水是吧!后面搜索了解一番后才渐渐开始明白:Flask ,Django 自带的web server的目的就是用于开发,而不是生产环境。他们俩本身是web framework而不是web server. 他们自带的server应该都只能开单进程,在自己测试时,我们的目的很单纯,请求程序的人也不多,我们的后台自然很安全,但是一旦服务器上线了那个就大不同了,用户的目的不像我们那样单纯,而且他们人多会疯狂发起请求,靠我们不专业处理请求的flask自带的web server怎么处理得过来呢,所以我们当然要靠牛掰的Nginx来帮忙咯。

    sudo apt-get install nginx

    安装好Nginx后,系统会默认创建一个目录“/var/www/html”,若通过公网ip地址能够看到一个大写的Nginx界面就说明成功了。
    先装好,不用用管他,下面我们再谈配置的问题

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值