uwsgi+nginx+flask在阿里云ESC上的配置

uwsgi的配置

可以通过命令来实现,也可以写在各种类型的配置文件中,这里我使用的是.ini的格式。

在这里插入图片描述
socket应用程序运行在本地的88端口上

wsgi-file指出项目启动文件的名字

callable 代表flask实例的名字,即app=Flask(name)

uwsgi的配置参数还有很多,这里就不列举了。

nginx的配置

nginx的配置文件在 /etc/nginx/nginx.conf中,写在下面这两个文件也可以

在这里插入图片描述
在这里插入图片描述
在http中添加server,listen参数选择nginx要监听的端口,server_name可以写域名和ip。

如果uwsgi使用的是socket就像上图一样配置就可以了,uwsgi_pass 后面的ip和端口要和uwsgi的一样才可以。

但是如果uwsgi使用的http,location则需要如下配置:

location /{

proxy_pass http://127.0.0.1:88
}

同理proxy_pass的ip和端口应该是uwsgi中的一样,location后面的路径是对路由的限制,如果为/index/就只能访问index路由下的网页。

关于uwsgi中使用http和socket的区别

如果使用http,uwsgi与nginx之间的通信协议是http协议,如果使用socket,uwsgi与nginx之间的通信是使用uwsgi协议,据说uwsgi协议要快很多,所以一般通过nginx转发的话都会使用socket。

第一个坑

如果我们不使用nginx,直接用uwsgi作为web服务器或者测试自己的uwsgi配置成功没有,第一行应该写为http,就可以直接在浏览器中访问到页面了,使用socket的话就不行。

第二个坑

如果发现nginx监听80端口就只能访问到"Welcome to Nginx"页面,不能转发给uwsgi时,但是使用其他页面就可以。那是因为80端口被nginx的默认页面占用了。我们进入/etc/nginx/sites-enables/的目录下有一个default 文件。

在这里插入图片描述

80端口就是被这个占用了,我们将这个default文件删掉或者改变上面这个监听端口就可以了。

第三个坑

阿里云安全组需要自己去开启,阿里云默认开启的端口就只有几个,我们需要在安全组中设定要开启的端口。

未解之谜

我当时在阿里云中开放了相应端口,本机也关闭了防火墙,但是那个端口还是不能被外界访问。后面发现通过firewall-cmd --add-port=8808/tcp命令开放端口就可以了。按照道理来说我关闭了防火墙,就不应该存在这个问题了,不知道为什么,后面搞懂了再来补充。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值