本文重要介绍,flask框架写的web网站若是正确部署在正常环境中。由于flask自带的web服务不足以支持实际使用状况。只是方便开发人员调试开发,并不具有可靠的性能。 如下介绍适用于实际生产环境所使用的部署方式。python
flask+uwsgi+nginx,这种模式,首先分别介绍一下。是什么,分别起到什么做用。flask,是一种python开发web的一种框架,相似的还有django,flask比较轻量,django适合大型项目。 flask框架写的web,一般能够直接运行起来就能够访问web了。可是这种方式只适合开发调试,前面已经提过。实际是它内部有一个web服务,叫wsgi。这个东西不是很全,只是做为部分被提供在flask框架内。生产环境中,须要另外的web服务来挂起flak写的网站。一般这个web服务就是uwsgi。稍后咱们会讲到,怎么去安装配置uwsgi; 而对于nginx,它扮演的是反向代理角色。在大型项目里面经常扮演者反向代理和负载均衡的角色。 什么意思呢,就是用户发送的请求,所有经过这个nginx服务,nginx会去请求真正的内容服务器,也就是咱们部署好的,uwsgi服务。uwsgi服务将用户须要的网页和数据,送到nginx服务那,再由nginx推送给用户。这个过程,对于用户来讲,只和uwsgi服务发生关系。真正的内容服务器是不可见的。 因此从安全的角度来讲,这无疑更安全。 另一个缘由选择nginx,是因为nginx服务性能很稳定,高并发能力强。nginx
接下来,说说部署步骤web
这一步,我在前面的文章里面已经写过了。不在复述。连接以下:django
https://my.oschina.net/RabbitXiao/blog/1583662flask
#经过yum安装nginx sudo yum install nginx #启动nginx服务 sudo systemctl start nginx #设置开机自启动 sudo systemctl enable nginx
若是上面安装没有错误的话。此时在你客户端浏览器上输入你的服务器ip,回车,便可出现nginx的默认欢迎首界面。这就说明咱们配置成功了。接下来就是该nginx的配置文件,将咱们的uwsgi服务和nginx关联起来,起到一个反向代理的做用。vim
若是你是经过yum进行安装,没有改变yum的安装路径的状况下,通常nginx的配置文件会在/etc/nginx/nginx.conf这儿。这个就是咱们须要修改的配置文件浏览器
输入指令安全
vim /etc/nginx/nginx.conf
以下图bash
说明: include /etc/nginx/conf.d/*.conf;这个地方的意思是,咱们能够在/etc/nginx/conf.d/目录下,自定义咱们本身的配置文件,文件名以xxxx.conf命名便可。对于多个网站同时挂载在ngnix上的时候,能够讲不通的站点配置文件,分别存放。服务器
server_name 对应的是你的公网ip地址,固然也能够填写域名。均可以!
圈起来的部分,目的就是配置uwsgi与nginx的关系,创建起联系。这样nginx就代理了uwsgi。
安装图中圈起来的填写便可。可是有一点须要注意的是,uwsgi_pass 127.0.0.1:8001这个地方的内容填写是根据uwsgi的配置文件来的。若是你的配置文件里面配置的不是这个地址,那么你还这么填将会致使失败。楼主的uwsgi的配置文件以下:
1 [uwsgi] 2 #uwsgi启动时,所使用的地址和端口(这个是http协议的) #此处能够填写0.0.0.0:5050,这样外网就能够访问了,可是若是咱们用了代理服务器,好比nginx,那么处于安全考虑,这个 #地址不能够暴露出去,因此填写的127.0.0.1:5050.这样,用户只能访问nginx代理服务器,而不直接与uwsgi服务器发生关系 3 http=127.0.0.1:5050 4 5 #uwsgi 启动时所使用的地址与端口(这个是socke协议) 6 socket=127.0.0.1:8001 7 8 9 #指向网站目录 10 chdir=/home/rabbit/package/OnlyVideoSourceModel 11 12 #python 启动程序文件 13 14 wsgi-file=manage.py 15 16 #python 程序内用以启动的application 变量名 17 18 callable=app 19 20 21 #处理器数 22 23 processes=4 24 25 #线程数 26 27 threads=2 28 29 #状态检测地址 30 31 stats=0.0.0.0:9195 32 33 ~ ~
咱们能够看到上面的配置文件有一个socket=0.0.0.0:8001。这个就是上面配置nginx时候,须要对应填写的。因此应我的环境而异。不要直接粘贴。
配置完后,中止nginx,而后重启nginx。
#中止nginx systemctl stop nginx.service #启动nginx systemctl start nginx.service
而后再本地浏览器上输入服务器的公网ip地址(不须要带端口,nginx默认就是80端口),不出意外,就能够看到咱们部署好flask网站了。
好比下面:
祝你们能一次配置成功!!!。若是有什么问题,在下面评论,或者加本人qq:739462304
或者微信