nginx+uwsgi阿里云ubuntu服务器上简单部署flask RESTful风格项目

ubuntu16.04上利用Nginx代理uwsgi处理Flask web应用

1、环境要求

  ubuntu16.04  ----  阿里云的服务器

  Nginx

  python2

  uwsgi

2、简单介绍Nginx

  nginx是一个高性能的http和反向代理的服务器,Nginx采采用的epoll的机制,而没有使用select和poll,虽然,在用户活跃数量比较高的时候,epoll性能不如select,但是,我们用Nginx来作为web服务器还是很不错的。nginx是一个轻量级的web服务器,他占用内存少,并发能力强,非常适合作为静态资源的服务器使用。

  apt-get安装nginx:

    

    sudo apt-get update
    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:nginx/stable
    sudo apt-get update
    sudo apt-get install nginx

   安装完成后,打开浏览器访问你的服务器,如果看到了nginx的欢迎页,说明你安装成功了,如果没有看到欢迎页,也不用着急,先检查自己的阿里云服务器的安全组规则中是否允许了80端口,如果没有,直接添加安全组规则。

  添加安全组规则方法链接:https://jingyan.baidu.com/article/fea4511a2e387cf7bb912532.html

3、简单介绍uWsgi

  uwsgi是一个web服务器,它实现了wsgi、uwsgi、http等协议。

  uwsgi可以理解为Nginx和flask项目之间的桥梁,当nginx发现用户请求的不是static文件时,他就请求uwsgi,uwsgi又将请求抛给了flask,flask找到相应的api然后返回。

  安装uwsgi:pip install uwsgi

  让我们从一个简单的”Hello World”开始:

  def application(env, start_response):
      start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
      return [b"Hello World"]

  (将其保存为 foobar.py)。

  正如你所见,它由一个简单的Python函数组成。之所以称之为 “application”,是因为它是uWSGI Python加载器将会搜索的默认函数 (但你显然可以自定义)。

  将其部署在http端口9090,如果是阿里云服务器需要注意,添加9090端口到安全组

  现在,启动uWSGI来运行一个HTTP服务器/路由器,它会传递请求到你的WSGI应用:

  uwsgi --http :9090 --wsgi-file foobar.py

4、线上调式flask项目

  确保项目所需文件都安装完成,使用flask自带的web应用服务器Werkzeug运行项目

  如果项目运行失败,请自行检查问题所在

  注意:添加端口到安全组

5、配置uwsgi

  确定nginx,uwsgi都安装正常,同时flask也能正常运行。

[uwsgi]
socket = 127.0.0.1:8080    #配置nginx
chdir = /home/python/app    #配置项目目录
module = manage   #加载指定的python WSGI模块(模块路径必须在PYTHONPATH里)
wsgi-file = manage.py   #配置入口模块
master = True   #开启master
callable = app   #设置在收到请求时,uWSGI加载的模块中哪个变量将被调用,默认是名字为“application”的变量
processes = 1   #配置进程数
threads = 1   #配置线程数
vacuum = true   #推出是清空变量环境
daemonize = wsgi.log   #配置守护进程
pidfile=uwsgi.pid   #进程pid

6、配置nginx

  如果按照我的方法,用apt安装的话,配置文件应该在/etc/nginx/sites-enabled/目录下有个defalut文件,我们就直接修改这个文件,当然 ,在修改前最好先备份一下。

  a、首先将下面的代码注释掉

     #location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404;
        #}

  b、添加一下代码(注意:一定要确保自己的项目目录下存在logs/access.log和logs/error.log两个文件夹,不然nginx将会报错)

    location  /api  将符合/api的请求转给uwsgi处理

    location  /       指定静态文件处理时的目录  (注意:用alias的话,路径的末尾一定要加/,不然会找不到报forbidden错误)

     access_log  /home/python/app/logs/access.log;
        error_log  /home/python/app/logs/error.log;
        location /api {
            include        uwsgi_params;
            uwsgi_pass     127.0.0.1:8080;
        }
        location /{
            alias /home/python/app/www/static/html/;
        }

  

原文地址:https://www.cnblogs.com/wangqj1996/p/9408495.html

时间: 2024-10-29 01:10:24

nginx+uwsgi阿里云ubuntu服务器上简单部署flask RESTful风格项目的相关文章

本地Windows远程桌面连接阿里云Ubuntu服务器

本地Windows远程桌面连接阿里云Ubuntu 16.04服务器: 1.目的:希望通过本地的Windows远程桌面连接到阿里云的Ubuntu服务器,通过远程桌面图形界面的方式操作服务器. 2.条件:申请的阿里云Ubuntu服务器一台,本地Windows操作系统电脑一台. 3.如何远程桌面连接: (1)首先通过Windows系统下连接Linux系统的命令行工具连接Ubuntu服务器,(工具:xshell,securecrt,putty等). (2)通过Windows下工具连接到linux操作系统

在阿里云ECS服务器上部署Java环境实现域名访问

事实证明,善于利用网络搜索是一项非常重要的能力. 在很多时候,借用别人的经验和成果能够帮助我们拓宽思维和眼界,以高效率解决问题. 一味地自己埋头钻研,很可能会局限在角落里,甚至走进死胡同.从来,努力都不是要求自行其是.在绝大多时候,都是用成果来衡量努力的程度的,而善于借用现成的结果可以帮助我们解决问题. 今天找到了一篇很好的文章,讲述了如何在阿里云ECS服务器上部署Java环境实现域名访问. 链接 在之前我已经购买了域名和空间,并配置了映射,导入wordprss建立个人博客网站,实现了在线编辑和

ahjesus linux连接阿里云ubuntu服务器并更改默认账号和密码,以及创建子账户

先确保本地Linux服务器SSH服务开启,如果没有开启直接执行指令:service sshd start 然后我们使用ssh指令进行远程登陆 ssh [email protected] 输入passwd指令修改旧密码 修改默认账号root vi /etc/passwd 按i键进入编辑状态 修改第1行第1个root为新的用户名 按esc键退出编辑状态,并输入:x保存并退出 vi /etc/shadow 按i键进入编辑状态 修改第1行第1个root为新的用户名 按esc键退出编辑状态,并输入:x!强

使用Navicat远程连接阿里云ECS服务器上的MySQL数据库

1.必须给服务器的安全组规则设置端口放行规则,在管理控制台中设置: 2.之后填写配置,授权对象是授权的IP,其中0.0.0.0/0为所有IP授权,之后保存; 3.Navicat使用的配置 在编辑连接处,要配置SSH和常规两项 在常规项填写配置,主机名填写:localhost,配置完成后,就使用Navicat远程连接阿里云ECS服务器上的MySQL数据库: 测试连接,完美成功. 原文地址:https://www.cnblogs.com/GreenForestQuan/p/11776130.html

在阿里云Linux服务器上安装MySQL

申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务器. 操作系统:Red Hat Enterprise Linux Server 5.4 64位. CPU:1核 内存:512M 硬盘空间:20G 带宽:1Mbps. 今天在这台云服务器上安装了基本环境(JDK.Tomcat和MySQL).本文主要在阿里云Linux云服务器安装MySQL全过程,以及对安装时遇到的问题进行记录. 下载MySQL服务器和客户端 访问MySQL的官网,进入其下载页面(http://dev.m

部署搭建阿里云Ubuntu服务器

一.购买服务器,挂载数据盘 1.购买 ECS 服务器之后,如果没有购买数据盘,需要先购买数据盘,并按照官方文档挂载. 2.使用 shell 链接客户端,不过需要在阿里云的管理控制台登陆一下服务器终端(每次重启服务器都要这么做) 3.执行 fdisk -l命令,查看有没有 /dev/xvdb 数据盘,有则继续. 4.执行“fdisk  /dev/xvdb”命令,对数据盘进行分区:根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成. 5.使用“fdisk -l”命

阿里云Ubuntu服务器下安装MySQL数据服务器,配置java环境、tomcat服务器

作为一个即将毕业的学生来说是很穷的,但是又想体验一下自己做出来的成果. 最近阿里云推出了学生优惠9块9就可以买一个月的阿里云服务器,不过需要的是在读学生,所以只能用半年了.废话不多说了.要是免费多好的. 购买服务器等自己可以详细查看阿里云的细则.在这里我介绍的是Ubuntu server,windows下都是傻瓜是安装不用介绍的. 1.MySQL的安装 在基于Linux内核的Ubuntu有自己自带的软件安装包命令.我查询了很多资料,基本的命令都是 sudo apt-get install 软件的

阿里云Ubuntu服务器环境部署wordpress

配置阿里云服务器 基本不需要特殊的设置,选择默认这可以了,只不过需要保存好用户名和密码 连接阿里云服务器 本文推荐使用xshell和xftp来管理(附件提供windows版本软件) 如何使用xshell可以参考:http://www.yujzw.com/cswzjs/xshell.html 使用一键安装web环境插件(最新版本为1.41,使用apache) 插件安装包里面有官方的pdf文档,介绍的很详细,其中也有xshell和xftp的安装和配置教程,推荐先看完pdf文档在进行安装. 安装wor

用Navicat连接阿里云ECS服务器上的MySQL数据库

用navtive连接阿里云服务器(Linux)的数据库时,老是连接不上,并且报10060错误,要通过以下两个步骤解决: 1.先进入linux连接数据库并输入密码: mysql -uroot -p 2.输入以下命令进行授权: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里写自己数据库的密码' WITH GRANT OPTION; 3.刷新权限: FLUSH PRIVILEGES; 4.添加了权限之后,还是连接不上数据库.必须给