加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

小白系列之Flask服务器部署

发布时间:2019-05-15 01:22:22 所属栏目:外闻 来源:君莫舞丶无念blog
导读:想来想去最后还是准备从Flask服务器部署开始写起,我将以我自己做博客网站的经历用通俗易懂的语言跟大家分享经验,开始喽。 一、host设置方式使服务器上的网页可被外部访问 大家还记得flask run命令吧,通常运行后,就可以在本地127.0.0.1:5000访问自己做
副标题[/!--empirenews.page--]

想来想去最后还是准备从Flask服务器部署开始写起,我将以我自己做博客网站的经历用通俗易懂的语言跟大家分享经验,开始喽。

一、host设置方式使服务器上的网页可被外部访问

小白系列之Flask服务器部署

大家还记得flask run命令吧,通常运行后,就可以在本地127.0.0.1:5000访问自己做的网页了。

小白系列之Flask服务器部署

想象一下,如果代码是在服务器上,那么输入这一行代码后,只能在服务器黑窗口上打开浏览器并访问127.0.0.1:5000,然后对着黑窗口一脸懵逼的自行脑补自己做的网页的样子。。。

小白系列之Flask服务器部署

所以当然有需求就有解决的办法啦,在网上查阅一番后,总结了下面两种方法。

  1. 直接输入flask run -p 5000 -h 0.0.0.0 
  1. 将文件中的代码app.run()改为app.run(host='0.0.0.0',port=5000) 

其实两种方法功能是一样的,只是这个port和host是什么意思呢。

port就是端口的意思,可以把端口看成是访问服务器地址的入口,同一个服务当然只能占用一个入口啦,就相当于不同的房间有不同的门。

而hosts是一个没有扩展名的系统文件,它并不是软件或者工具,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。简单的理解就是0.0.0.0设置以后,你的服务器IP地址就能被外网访问了,因此,此时你在自己的电脑上访问服务器的ip地址就相当于当初在本地127.0.0.1:5000访问自己的网页一样了。o(∩_∩)o 是不是很简单呢。

但是我自己的服务器是阿里云的服务器,进行以上设置之后就会出现:

小白系列之Flask服务器部署

脑壳痛!这个地方我可是弄了很久,而且阿里云自带的教程文档被藏在网站的各个角落里,找了很久才能找到。。。其实可以仔细想一下,既然原理没有差错,那可能就是端口的问题,要么是端口被占用,要么是端口没开放,最终发现阿里云控制台有个端口开放的界面。

小白系列之Flask服务器部署

此处借用网友的一张图

原来阿里云的服务器端口需要自己手动开启。这样第一项尝试就大功告成了!

二、设置uWSGI

当你觉得第一种设置的方式可以让你的服务器配置成功就是大错特错了。你会发现,只要你将用ssh连接服务器的xshell关闭之后,你的网页就无法再访问。

其实想一下就能想通,平常自己的命令函窗口关闭之后,在本地也是无法访问自己网站了的,虽说linux服务器在远程一直开着的,但是关闭xshell时就好比关闭了命令窗口,就无法启动了,因此这里就需要使用第二种方法了。uWSGI的配置方法。

小白系列之Flask服务器部署

这个时候的你应该打开搜索引擎去搜索一下什么是uWSGI以及一些相关资料(这是非常好的学习习惯呢,会受益很多)就会发现有着uWSGI+Nginx之类的词汇。

我们先来说uWSGI。uWSGI是一个web服务器,可能有朋友听说过服务器apache/tomcat之类的词汇,其实apache/tomcat是tcp/ip协议进行通信的,uWSGI与之不同之处在于它可以提供独特的uwsgi协议进行通信,这里的协议不得弄得朋友可以查阅一下资料,当然我以后的文章也会说到的,不要错过哦。

先执行:

  1. pip install uwsgi 

接下来进行配置,先是在你想存放的任何位置执行下面命令

  1. touch uconfig.ini #创建一个uconfig.ini配置文件 
  2. vi uconfig.ini #读取uconfig.ini文件 

关于vi/vim以后我一会写一期教程的,现在可以把他看为一个文本编辑器,只不过有点奇怪,需要特定的命令。

按下a ,开始写入文件

写下配置文件:

  1. [uwsgi] 
  2. socket = 0.0.0.0:5002 #阿里云服务器中,要将5002端口添加到安全组中# 外部访问地址,可以指定多种协议,此处使用socket。 
  3. chdir = /home/pythonproject/my_flask/py3env/myblog/ # 指向项目目录 
  4. wsgi-file = /home/microblogpw/microblog.py #这里是flask启动程序文件,此处切忌填错py文件的名称,或者是app不在if之下,否则报错:no python application found, check your startup logs for errors 无法找到你的app实例 
  5. callable = app # flask在microblog.py文件中的app名 
  6. processes = 4 # 处理器数 
  7. threads = 2 # 线程数 
  8. stats = 127.0.0.1:9191 #状态检测地址 
  9. touch-reload=/home/microblogpw/ #动态监控文件变化,然后重载服务,是跟uWSGI的emperor有关的配置项,当这个路径下面的文件发生变化,服务就会重新加载,这在部署上线之后对项目内容进行修改的时候十分有用 
  10. daemonize = /home/wyz/flask/server.log #daemonize项的出现表示把uwsgi服务器作为后台进程启动,项的值指向一个文件表明后台中的所有输出都重定向到这个日志中去。 

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读