flask+uwsgi+nginx部署网站

1.写在前面        

       本文重要介绍,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

2.安装步骤

a.部署flask+uwsgi

这一步,我在前面的文章里面已经写过了。不在复述。连接以下:django

https://my.oschina.net/RabbitXiao/blog/1583662flask

b.安装nginx

#经过yum安装nginx
sudo yum install nginx

#启动nginx服务
sudo systemctl start nginx


#设置开机自启动

sudo systemctl enable nginx

 

若是上面安装没有错误的话。此时在你客户端浏览器上输入你的服务器ip,回车,便可出现nginx的默认欢迎首界面。这就说明咱们配置成功了。接下来就是该nginx的配置文件,将咱们的uwsgi服务和nginx关联起来,起到一个反向代理的做用。vim

 

c.配置nginx

若是你是经过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

或者微信

相关文章
相关标签/搜索