阿里云上 centos系统部署flask并运行

阿里云上 centos系统部署flask并运行

  • 作者:Geticsen
  • 时间:2020-04-21
  • 612人已阅读
简介 阿里云上 centos系统部署flask并运行,这里讲一下所遇到的坑

1在Linux上安装Python 3

查看python版本

python -V

2Python虚拟环境

在Python中虚拟环境是一个放置你的项目的依赖环境的目录。这是一个将带有不同的依赖环境的项目隔离的好办法。它可以让你不用sudo命令就能安装包。

[leo@linux-vps] mkdir flask
[leo@linux-vps] cd flask 
[leo@linux-vps flask] pyvenv-3.6 venv

要创建虚拟环境你需要使用“pyvenv-3.4”命令。上述命令会在venv文件夹的内部创建一个名为lib的目录,这里会安装项目所依赖的包。这里同样会创建一个bin文件夹容纳该环境下的pip和python可执行文件。

为我们的Linux系统信息项目激活虚拟环境

[leo@linux-vps flask] source venv/bin/activate

在虚拟环境中可以直接用pip3来安装flask 以及pymysql

然后我们将项目上传到我们的flask目录

image.png

下面是重点在服务器上flask程序运行的时候要指定host具体的修改以后的代码如下:

if __name__ == '__main__':
   app.run(debug=True,port=80,host='0.0.0.0')

指定host非常重要下面说一下0.0.0.0与127.0.0.1以及localhost的区别

0.0.0.0和127.0.0.1
共同点:

  • 都属于特殊地址。

  • 都属于A类地址。

  • 都是IPV4地址。

区别:

  • 在服务器中,0.0.0.0指的是本机上的所有IPV4地址,,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。但是如果我只绑定了内网地址,那么通过外网地址就不能访问,所以如果绑定0.0.0.0,也有一定安全隐患,对于只需要内网访问的服务,可以只绑定内网地址。

  • 在路由中,0.0.0.0表示的是默认路由,即当路由表中完全没有找到完全匹配的路由的时候所对应的路由。

用途

  • 回环测试,通过使用ping 127.0.0.1 测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常。

  • DDos攻击防御:网站收到DDos攻击之后,将域名A记录到127.0.0.1,即让攻击者自己攻击自己。

  • 大部分Web容器测试的时候绑定的本机地址。

 

localhost
localhost其实是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为是同一个是因为我们使用的大多数系统上都默认localhost指向了127.0.0.1这个地址。 
在linux系统中,/ets/hosts文件中都会有如下内容:

 

总结
127.0.0.1是一个环回地址或仅本地接口的ip地址(从该接口发送出去,双从该接口接收回来)。

3最后使python程序在Linux下一直运行

使用nohup命令

nohup 

  nohup 命令 

  用途:LINUX命令用法,不挂断地运行命令。 

  语法:nohup Command [ Arg ... ] [ & ] 

  描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

[root@VM_0_14_centos longteng_web]# nohup python3 hello.py > log.txt &&
[1] 22103
[root@VM_0_14_centos longteng_web]#

或者

[root@VM_0_14_centos longteng_web]# nohup python -u index.py > log.txt 2>&1 &
[1] 9391

已成功使python程序在Linux下一直运行。


文章评论

Top