简述

Nginx在服务器部署中的作用

请求通过Nginx实现反向代理,将请求提交给代理服务器。本文中只用了一台服务器,所以是代理到本机。

gunicorn的作用

作为服务器代码的容器。接收Nginx的请求后执行代码,并通过nginx将结果最终返回给用户。

flask的作用

flask是python上用于web应用的轻量级的框架。

部署过程

1 在阿里云上租用一台云服务器,本文中使用的是ubuntu系统,以下内容都是在云服务器中进行。

2 使用pip3安装gunicorn

3  运行gunicorn试验一下:

# gunicorn -b 0.0.0.0:5000 myapp:app

  注意-b表示绑定,0.0.0.0:5000表示允许所有ip访问,5000表示监听的端口,myapp应该改成相应的你的入口文件名(入口文件即你要运行的web应用代码,记得要带上相应路径,但不要带.py),app是入口文件中你要运行的实例。例如我写的一个最简单的用于测试的入口文件:

 1 from flask import Flask
 2
 3 app = Flask(__name__)
 4
 5 @app.route('/')
 6 def hello_world():
 7     return 'Hello world!'
 8
 9 if __name__ == '__main__':
10     app.run()

在入口文件app.run()前加入这两行代码:

    from werkzeug.contrib.fixers import ProxyFixapp.wsgi_app = ProxyFix(app.wsgi_app)

此时在浏览器中输入127.0.0.1:5000应该会返回hello,world了。

注意:如果租用的服务器是纯命令行,可以下载w3m之类的软件实现浏览器访问网页的功能;

如果是需要外网访问,则需要在 阿里云——我的实例——安全组 中添加安全组规则,开放5000端口:

这样就能得到如上上图所示内容。

4 pip3安装nginx

5 修改Nginx配置文件

安装好的文件位置:

/usr/sbin/nginx:主程序

/etc/nginx:存放配置文件

/usr/share/nginx:存放静态文件

/var/log/nginx:存放日志

其实从上面的根目录文件夹可以知道,Linux系统的配置文件一般放在/etc,日志一般放在/var/log,运行的程序一般放在/usr/sbin或者/usr/bin。

进入/etc/nginx后发现下面有如下文件(夹):

有时下载的nginx的配置文件中还会有nginx.conf.defalut,这是nginx的配置文件备份,我们真正需要修改的是nginx.conf。

但实际上一般不直接修改配置文件,建议通过在nginx.conf中引入配置文件的方法来修改配置:

使用vim nginx.conf打开后加入如下命令:

include /etc/nginx/conf.d/*.conf;

  表示执行nginx配置文件时,会搜寻conf.d文件下所有后缀为.conf的文件并执行。

  我们在该conf.d目录下用vim yyserver.conf新建一个文件,内容为:

server {listen 80;    #监听的是80端口,外网访问时输入ip+端口请求即可被nginx收到server_name localhost;    #服务器名为主机名,也可以改为域名
location / {proxy_pass http://127.0.0.1:5000;    #Nginx将发送给server_name的请求反向代理到本机5000端口,注意该端口要与gunicorn运行时监听端口一致proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

 修改配置后测试配置文件是否语法正确(在任何目录下测试都行):

重启nginx使配置生效:

# nginx -s reload

 这时通过80端口可返回我们想要的hello world:

默认开放的端口就是80。此时的过程是:请求发送到服务器80端口,80端口被监听,根据nginx配置文件反向代理到5000端口,gunicorn收到后,根据路径找到入口文件执行代码。

如果改为ip+5000端口,同样可以得到hello world,此时直接通过gunicorn访问端口并运行代码。

坑1: 用pip下载包记得用pip3 install XXX使得包安装在Python3中

坑2:使用以下方式打开在阿里云租用的服务器(linux)终端:

 #进入本机管理员权限

1 $ sudo -s

1 bash-3.2# ssh  服务器ip地址 -p或者直接用以下命令连接(remote_host在阿里云上都是root):
ssh remote_host@ip

  

转载于:https://www.cnblogs.com/IcarusYu/p/8519391.html

python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试相关推荐

  1. 【新手向】阿里云上ubuntu+flask+gunicorn+nginx服务器部署(二)项目部署

    本项目实现的是类似于ins的图片分享网站.继续(一),当nginx的配置已修改好后,要在远程服务器上部署网站,只需要几个步骤: 1 前期准备 2 将运行网站的代码从github上下载过来 3 下载依赖 ...

  2. 在阿里云上用mosquitto搭建MQTT服务器

    可以购买一个阿里云的服务器,怎么购买就不说了,刚开始的时候还是装windows吧,可视化界面容易配置,直接上手ubuntu的话不知道哪里出错了. 先添加一个端口出来: 这一步很重要,因为阿里云是保护自 ...

  3. 不服OceanBase跑分?今天起可到阿里云上一战

    蚂蚁金服自研数据库OceanBase登顶TPC-C榜单的消息振奋人心,同时引起国内技术圈的广泛讨论,第一个云上跑出来的数据库分数含金量如何?其他数据库有没有可能更强? 针对这些疑惑,10月24日阿里云 ...

  4. 阿里云服务器搭建python web环境_《Python入门》Linux 下 Python Web开发环境搭建笔记-阿里云开发者社区...

    之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个 ...

  5. 在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Nginx)

    2019独角兽企业重金招聘Python工程师标准>>> Oracle APEX 系列文章3:在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Ng ...

  6. Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完整开发环境 (准备工作)...

    本文是钢哥的Oracle APEX系列文章中的第二篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技 Oracle ...

  7. [Linux]阿里云免费试用体验(在阿里云的ubuntu上部署个人服务)

    作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然这在虚拟机或者自己的PC上面也可以实现,但是这跟一台一直开着 ...

  8. 在阿里云的ubuntu上部署个人服务

    为什么80%的码农都做不了架构师?>>> 作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然 ...

  9. Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完整开发环境 (准备工作)

    本文是钢哥的Oracle APEX系列文章中的第二篇,完整 Oracle APEX 系列文章如下: - Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技 - Or ...

最新文章

  1. Java反射得到属性的值和设置属性的值
  2. 下载好了mysql 如何在命令行测试_MAC上安装MySQL,测试是否安装好了,在命令窗中作建表、查询等基本操作。-Go语言中文社区...
  3. DHCP的主要知识点
  4. linux centos7 升级gcc版本 使用 yum centos-release-scl devtoolset-8-gcc* 非源码编译
  5. 在桌面上创建一个宽带连接服务器,win7宽带连接怎么创建桌面
  6. android 通过webview调起支付宝app支付
  7. Unity C# Job System介绍(二) 安全性系统和NativeContainer
  8. postgresql集群方案hot standby 安装和测试
  9. 冒泡排序提前终止条件_“离职要提前30天通知”这9种误区,你踩过几个?
  10. [Xcode 实际操作]一、博主领进门-(15)读取当前应用的信息
  11. [网络安全自学篇] 八十四.《Windows黑客编程技术详解》之VS环境配置、基础知识及DLL延迟加载详解(1)
  12. Odin Inspector 系列教程 --- 初识Odin序列化
  13. 测试cpu是否有问题的软件,cpu测试软件|CPU检测软件有哪些 5款CPU检测工具介绍
  14. 第八章:Java8新增特性,Lambda表达式
  15. 对于初学者的JavaScript 教程
  16. Java 集合中遍历删除元素抛异常的原因,从ArrayList说起
  17. c语言撩妹小程序,撩妹简单的web小程序!分享给大家~~~~~~
  18. CMP FLASH影音播放器插件
  19. Windows服务器更改远程端口3389
  20. Android实习面试经验汇总,骚年你的屏幕适配方式该升级了

热门文章

  1. dhtmlXTree 指南与实例(一)
  2. string time java,【JAVA】之【string转time方法】
  3. 集成sleuth_Spring Cloud集成ELK、采用RabbitMQ收集Zipkin数据
  4. 重磅!一文读懂线性方程组的求解方法
  5. CMD提取文件名技巧
  6. Specification for springger thesis Writing
  7. 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
  8. mysql oracle sqlserver分页,三种常用数据库(Oracle、MySQL、SQLServer)的分页之SQLServer分页...
  9. CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
  10. 统计学习方法笔记(李航)———第四章(朴素贝叶斯法)