【Flask】flask+uwsgi+nginx环境部署

在centos上,部署flask框架的环境,我选择了uwsgi和nginx

具体步骤为:

配置nginx+uwsgi

安装nginx  nginx/1.12.2
安装Flask  0.10.1
安装uwsgi  2.0.16(64bit)
安装uwsgi-plugin-python 2.0.16

创建一个flask项目

 1 #!/usr/bin/python
 2 # coding=utf-8
 3
 4 from flask import Flask
 5 import sys
 6 reload(sys)
 7
 8 print sys.path
 9 sys.path.append(‘/home/MySite‘)
10 sys.setdefaultencoding(‘utf-8‘)
11
12 app = Flask(__name__)
13
14
15 @app.route(‘/‘)
16 def hello_world():
17     return ‘澳门最大在线赌场开业了!!!美女荷官在线发牌!‘
18
19
20 if __name__ == ‘__main__‘:
21     app.run(port=8080,debug=True)

测试一下flask是否能够显示

注意

flask直接运行,只能在一台电脑上看到,因为是单线程的。

app.run(host=‘0.0.0.0‘,port=80)

腾讯云安全组中打开80端口即可访问。

其它主机应该类似。host中填公网地址无法启动。

ps..澳门xx会被腾讯云拦截。。。请换个健康和谐的内容

创建ini文件

 1 [uwsgi]
 2 base =/home/MySite
 3 callable = app     #这个必须写,不然会报找不到application
 4 socket = :8081    #开启的端口,与nginx一致
 5 chdir =/home/MySite/   #指定项目路径
 6 wsgi-file =MySite.py    #指定flask运行的文件,是一个相对路径
 7 processes = 4   #4个进程,每个进程2个线程
 8 threads = 2
 9 chmod-socket = 666
10 plugins=python   #安装uwsgi-plugin-python后需要添加的一个参数
11 daemonize = mysite.log    #让uwsgi后台运行的,输出为一个Log
12 #stats = :8082

修改nginx配置文件

 1 user nginx;
 2 worker_processes auto;
 3 error_log /var/log/nginx/error.log;
 4 pid /run/nginx.pid;
 5
 6 # Load dynamic modules. See /usr/share/nginx/README.dynamic.
 7 include /usr/share/nginx/modules/*.conf;
 8
 9 events {
10     worker_connections 1024;
11 }
12
13 http {
14     log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
15                       ‘$status $body_bytes_sent "$http_referer" ‘
16                       ‘"$http_user_agent" "$http_x_forwarded_for"‘;
17
18     access_log  /var/log/nginx/access.log  main;
19
20     sendfile            on;
21     tcp_nopush          on;
22     tcp_nodelay         on;
23     keepalive_timeout   65;
24     types_hash_max_size 2048;
25
26     include             /etc/nginx/mime.types;
27     default_type        application/octet-stream;
28
29     # Load modular configuration files from the /etc/nginx/conf.d directory.
30     # See http://nginx.org/en/docs/ngx_core_module.html#include
31     # for more information.
32     include /etc/nginx/conf.d/*.conf;
33
34     server {
35         listen       80;
36         server_name  localhost;
37         location / {
38         include /etc/nginx/uwsgi_params;
39         uwsgi_pass 127.0.0.1:8081;    #与ini文件对应
40         uwsgi_param UWSGI_CHDIR /home/MySite;
41         #uwsgi_param UWSGI_SCRIPT View:app;
42         #uwsgi_param SCRIPT_NAME /;
43         #uwsgi_pass unix:/home/MySite/uwsgi.sock;
44         }
45
46         error_page 404 /404.html;
47             location = /40x.html {
48         }
49
50         error_page 500 502 503 504 /50x.html;
51             location = /50x.html {
52         }
53     }
54   }

uwsgi启动命令,如果不写绝对路径需要在ini文件当前路径执行

1 uwsgi --ini abc.ini

nginx启动命令

/usr/sbin/nginx -c /etc/nginx/nginx.conf

启动这两个服务,就可以正常访问你的flask内容了。

原文地址:https://www.cnblogs.com/ArmoredTitan/p/9164054.html

时间: 2024-08-27 18:13:07

【Flask】flask+uwsgi+nginx环境部署的相关文章

CentOS下实现Flask + Virtualenv + uWSGI + Nginx部署

一.项目简介 在本文中,将一步一步搭建一个简单的Flask + Virtualenv + uWSGI + Nginx 架构的Web服务,可以作为新手的学习也可作为记录备忘. 如果你安装好了环境并有一定基础可以直接从第五节开始部署. 项目中只是演示了浏览器访问地址,获得文本返回的过程,本人尽量把配置解释的清晰.基于搭建好的架构,后续可以将业务层(Python)进行扩展,本文不做研究 ,比如: 1.扩展业务代码:实现json.静态资源等等的请求响应. 2.基于业务的数据库查询和部署. 3.服务器端的

Flask+uwsgi+Nginx+Ubuntu部署教程

学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的过程就会重复一次.不知道多少人的膝盖中箭了呢?我也这样干过,这么做确实很蠢,所以我决定写一篇 Flask+uwsgi+Nginx+Ubuntu 的部署教程,解答一些我自己在这个过程中的疑问,从原理到方案,以一个小白的角度,总结一下部署.运维这件事,应该对初学 Flask 需要部署的同学有些帮助. 环

Flask+uwsgi+Nginx+Ubuntu部署

学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Python选择的是2.7.2这个是Ubuntu系统自带的学起来感觉还是简单的 不用去软连,目前自己的flask是python3写的 ,慢慢去过渡,先吧这个给搞通了,那么在优化也是很顺手的.其实对于很多的原理自己也是一知半解,先吧这个给搭起来,慢慢去了解里面的逻辑什么的. Nginx Nginx 是高效的

flask+uwsgi+nginx+docker-compose部署

简单介绍 Flask这里就不多阐述了,已经是很流行的一个轻量级python框架了,对于小.中型项目特别适合.这里用docker的compose编排部署.uwsgi 简单的说明下,uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议. Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范. 这是官方

Flask+uwsgi+Nginx环境搭建

开源软件准备需要的软件列表:setuptools-33.1.1.zipPython-2.7.13.tgzpip-9.0.1.tar.gznginx-1.10.3.tar.gz软件统一上传到/usr/local/src/下,python是使用自己编译的. Python安装 先安装以下的软件(如果有的话,就可以不安装了,例如使用rpm -qa zlib-devel先查看下)yum install zlib-devel -yyum install openssl-devel -y tar -zxvf解

uWSGI + Nginx + Django 部署

1. uWSGI 服务器 Django 默认使用 WSGI(Python Web Server Gateway ) 作为 Web 服务器,一般仅用来作为测试使用,实际生产环境而是使用 uWSGI 和 Nginx 作为服务器. uWSGI 代码完全用C编写,效率高.性能稳定,但是处理 静态文件能力较弱,因此实际生产环境中,一般采用 uWSGI + Nginx 两者搭配使用: uWSGI:处理动态请求(css.js.图片文件等) Nginx:处理静态文件请求(提交表单.mysql.动态渲染 html

Ubuntu16.04下搭建mysql + uwsgi + nginx环境启动flask 项目

1.安装mysql Sudo apt-get install mysql 配置mysql的数据存储路径,默认在 /var/lib/mysql sudo cp -R /var/lib/mysql/* /home/applex/mysqldb sudo chown -R mysql:mysql home/applex/mysqldb sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf 将 [mysqld] 组下的 datadir改为: datadir = /h

CentOS7.2安装配置nginx+flask+python+uwsgi运行环境

操作系统:CentOS 7.2 Nginx安装请参考centos7.2安装nginx这个文章 1. 安装python3.5 执行命令 wget --no-check-certificate https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 等待下载完成 下载完成后,执行tar -zxvf Python-3.5.0.tgz解压安装包,因文件太多,只取最后几个截图 Cd到python的解压目录下执行./configure命令,同样只取最

Flask+uWSGI+Nginx项目部署

?写完项目总不能一直在本地跑,我也是第一次部署项目,这里把部署过程记录一下,暂且把坑略去,遇到的错误之后在整理发出来. 准备工作 云服务器一台(这里以阿里云服务器为例,系统装的Centos7) 代码仓库(我用的gitee) 开始部署 初始化系统环境 uWSGI不能使用root用户,所以添加个新的用户: adduser xxx passwd username gpasswd -a username wheel (添加到sudo用户组) 切换到自己创的用户下: sudo -iu username 初