请问Flask开发应用nginx与uwsgi应该如何部署
使用flask开发一个应用,需要部署,可是按照网络上的一些blog总是会报各种错误,实在配置不好了,烦请大叫指教。
使用的是阿里云服务器,Ubuntu 12.04.4 LTS。
大致步骤是模仿开源中国步骤完成的,如果完全按照原来的步骤进行是可以访问的,但是如果更改成我只得代码就会报
502 Bad Gateway
我的代码是存放在Github
-----下面是我修改之后的配置文件。
1. 创建/var/www/flask-blog-test/flask-blog-test.conf
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location /static {
root /var/www/flask-blog-test/;
}
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/var/www/flask-blog-test/flask-blog-test.sock;
}
}
ln -s /var/www/flask-blog-test/flask-blog-test.conf /etc/nginx/conf.d/
/etc/init.d/nginx restart
- 创建/var/www/flask-blog-test/flask-blog-test-uwsgi.ini
[uwsgi]
#application's base folder
base = /var/www/flask-blog-test
#python module to import
app = app
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/flask-blog-test/%n.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log
```
sudo mkdir -p /var/log/uwsgi
3. 启动uwsgi
uwsgi --ini /var/www/flask-blog-test/flask-blog-test-uwsgi.ini
4. 文件目录是
flask-blog-test
│
│──── venv
│ │──── bin
│ │────include
│ │──── lib
│ │──── local
│────app.py
│
│────static
│────templates
│────flask-blog-test-uwsgi.ini
│────flask-blog-test.conf
nginx+uwsgi+python+flask给你一个参考吧
1.修改/etc/nginx/nginx.conf
文件
...
http {
...
##
# Virtual Host Configs
##
#include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}
默认配置基础上改了Virtual Host Configs
:
include /etc/nginx/sites-enabled/*.conf;
2.创建/etc/nginx/sites-enabled/www.xxx.com.conf
文件
server {
listen 80;
server_name www.xxx.com xxx.com;
access_log /var/log/nginx/www.xxx.com.access.log;
error_log /var/log/nginx/www.xxx.com.error.log;
location /
{
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi_www.xxx.com.sock;
}
}
3.创建/etc/uwsgi/apps-enabled/www.xxx.com.ini
文件
[uwsgi]
plugins = python
vhost = true
chmod-socket = 666
socket = /tmp/uwsgi_www.xxx.com.sock
venv = /var/www/www.xxx.com/env
chdir = /var/www/www.xxx.com
module = runserver
callable = app
用了virtualenv:
venv = /var/www/www.xxx.com/env
这是代码部署的目录:
chdir = /var/www/www.xxx.com
4.代码的结构
代码的目录是这样的:
├── env
│ ├── bin
│ ├── include
│ ├── lib
│ └── local
├── runserver.py
└── abc
├── __init__.py
├── models.py
├── static
├── templates
└── views.py
代码目录里有一个runserver.py
:
#coding=utf-8
from abc import app
...
if __name__ == '__main__':
...
app.run()
其中app
是Flask
对象
from flask import Flask
app = Flask(__name__)
5.修改权限
sudo chmod -R 775 /var/www/www.xxx.com/
sudo chown -R www-data:www-data /var/www/www.xxx.com/
6.记得安装uwsgi-plugin-python
sudo apt-get install uwsgi-plugin-python
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19510.html
相关文章 Recommend
- • [上海]招Python量化系统开发工程师
- • 爱因互动科技发展有限公司招募Python开发攻城狮
- • 想转业学python,请问应该如何规划自己的学习计划
- • Flask中的URL部分什么方法可以让它支持正则
- • Flask操作结束后,要回到触发请求页面需要怎么设
- • 请问python外部模块可以在Jinja2模板里使用吗?
- • 请问APNS推送消息条数有什么限制?最大一次能发多
- • 在模板中直接引用配置文件参数的Flask应用怎么做
- • Flask多个视图函数需要用户登录才能指向统一控制
- • Flask-WTF在编辑一个记录的时候,下拉菜单如何同
- • Python Flask中分散存储大量视频函数的方法
- • flask web开发中使用redis做缓存怎么和数据库同步?
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问