【代码】Flask应用配置uwsgi+nginx

环境依赖
cat /etc/issue Ubuntu 14.04.5 LTS
(pyenv )python Python 3.6.4
flask --version Flask 1.0.2
uwsgi --version 2.0.17.1
nginx -v nginx version: nginx/1.4.6 (Ubuntu)

以下操作仅供参考,虽然服务跑起来了,但是很多配置还不到位。。

安装uwsgi
pip3 install uwsgi
在项目目录下新建 uwsgi_config.ini

[uwsgi]
socket = 127.0.0.1:9001 # 测试时,这里置为http = 0.0.0.0:80 监听80即可,设置为socket是与nginx通信, 同过本地9001端口
processes = 4
threads = 2
master = true
#chdir = /root/WechatTest
pythonpath = /root/WechatTest
wsgi-file = /root/WechatTest/app.py
callable = app  # 要配置这一项,否则报错 uwsgi -- no python application found
memory-report = true
stats = 127.0.0.1:8080 # 自身占用端口
pidfile = uwsgi.pid
daemonize=uwsgi.log

尝试运行 uwsgi --ini uwsgi_config.ini 保证正常, 停服uwsgi --stop uwsgi.pid
然后,将/etc/nginx/uwsgi_params文件复制到项目内,与uwsgi uwsgi_config.ini同级

安装Nginx
apt-get install nginx
启动nginx /etc/init.d/nginx start
输入外网ip,发现Welcome to nginx! 保证正常

配置项目对应的.conf文件
vi /etc/nginx/sites-enabled/project_nginx.conf
设置静态文件地址location /static
设置主站地址,添加uwsgi_params并用uwsgi_pass与uwsgi通信

server{
listen 80; 
server_name 外网ip地址或者你的域名;
charset utf-8;
location /static {
alias /root/WechatTest/static;
}
location / { 
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
}
}

但是我们发现,/etc/nginx/sites-enabled/下还有default的链接文件,所以现在去访问项目,是进不来的,因为它监听着80端口
于是将/etc/nginx/nginx.conf,将http {}的最后一行,由include /etc/nginx/sites-enabled/*配置为include /etc/nginx/sites-enabled/*.conf我们的配置文件就启用了。

启动项目
现在重启nginx,重启网络服务/etc/init.d/networking restart,使用 uwsgi --ini uwsgi_config.ini 运行,我们的项目就可以访问了,可以看到Response HeadersServer: nginx/1.4.6 (Ubuntu)

然而静态文件没有加载,直接打开静态文件,显示403 Forbidden nginx,这是nginx没有对我们项目用户的访问权限,因此,进入/etc/nginx/nginx.conf, 将user www-data;改为自己项目的用户user root;就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值