阿里云服务器部署flask项目

阿里云服务器部署flask项目,第1张

当我们执行下面的hello.py时,使用的flask自带的服务器,完成了web服务的启动。在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。

区分几个概念

WSGI:全称是Web Server Gateway Interface(web服务器网关接口),它是一种规范,它是web服务器和web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。

uwsgi:是一种传输协议,用于定义传输信息的类型。

uWSGI:是实现了uwsgi协议WSGI的web服务器。

我们的部署方式: nginx + gunicorn + flask

web开发中,部署方式大致类似。简单来说,前端代理使用Nginx主要是为了实现分流、转发、负载均衡,以及分担服务器的压力。Nginx部署简单,内存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。

正向代理 :请求经过代理服务器从局域网发出,然后到达互联网上的服务器。

特点 :服务端并不知道真正的客户端是谁。

反向代理 :请求从互联网发出,先进入代理服务器,再转发给局域网内的服务器。

特点 :客户端并不知道真正的服务端是谁。

区别 :正向代理的对象是客户端。反向代理的对象是服务端。

查看命令行选项 : 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。

直接运行

指定进程和端口号 : -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)。--access-logfile:表示指定log文件的路径

作为守护进程后台运行

阿里云服务器默认安装到 /user/sbin/ 目录,进入目录,启动 ngnix:

Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将/etc/nginx/sites-available/default文件替换掉就可以了。

新建一个 default 文件,添加以下内容:

修改完成后重启nginx即可。

Ubuntu 上配置 Nginx 另一种方法,cd 到 /etc/nginx/conf.d 文件夹,新建 xxx.conf 文件(xxx 可以是项目名,只要是 .conf 文件即可),写入以下内容:

需要监听 https 请求时,写入以下内容:

使用VS创建一个WebApi项目:

发布后生成的文件

1.如果已经安装了其他的 *** 作系统,可以重新更换 *** 作系统。

自定义的密码就是后面用远程工具进行连接的,登录密码和登录名。

安装组其实就是用来放行端口的。通俗来说就是管大门的。具体的可以参考这个文章:: 阿里云安全组详细解说

宝塔可以让你通过浏览器可视化 *** 作云服务器,允许你在一定程度上可以像使用windows一样使用Ubuntu系统

直接去微软官网查找,对应版本上的dotnet运行环境相关 *** 作,此处的连接 在unbuntu上安装.net core 。直接在Xshell执行相应的命令行,复制粘贴就可以了。具体 *** 作如下

1.使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。在终端中,运行以下命令:

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

sudo apt-get update

sudo apt-get install -y apt-transport-https &&

sudo apt-get update &&

sudo apt-get install -y dotnet-sdk-3.1

4.可以执行下边的命令,来运行一下试试,如果安装成功,会有反应,如果没有安装上,会提示错误

使用实例名称与密码将 WinScp 连接到云服务器,连接成功后,进入home 目录,普通用户都是在home 目录下进行 *** 作,一般你也可以建立一个自己的文件夹,把东西都放在同一个文件夹里,我这里创建了demo文件夹。将左侧本地文件直接拖拽到右侧的demo文件夹中,就可完成文件上传到云服务器。

在项目文件目录下运行下面命令:

发现 http://<云服务器公网IP>:<端口号>在浏览器根本打不开网页,于是

查看端口5000是否正常

发现5000端口,只对本地127.0.0.1有效,当然我们客户端没法访问了,此时有两种方法可以云解决

登录到宝塔,进入管理页面

此时再进行第五步,运行起项目,使用Nginx配置的端口80,就可以在浏览器中访问到了。

完成上面步骤后,虽然可以访问了,但当Xshell关闭后,就不可以访问了。这是因为Xshell启动的项目是前台进程,我们需要让项目启动变动后台进程。

守护进程是安装一个类似于Windows Service一样的服务, 能实时监控程序状态,异常退出时能自动重启。Supervisor 是用Python开发的Linux/Unix系统下的一个进程管理工具。它可以使进程(类似Windows Service)脱离终端,变为后台守护进程(daemon)。能实时监控进程状态,异常退出时能自动重启。详细文档请查看官网。配置守护进程Supervisor, 让我们的程序能365天24小时不间断运行。

安装成功后,supervisor就会默认启动,有很多方法添加进程,看了很多博客上的介绍和加上我的实际使用,我认为一下方法最好用,将每个进程的配置文件单独拆分,放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名,例如dotnetdemo.conf定义的一个简单的HTTP服务器

到此,就可以长久正常访问项目接口了。

supervisorctl 使用说明

supervisor启动和停止的日志文件存放在/var/log/supervisor/supervisord.log

注意:显式用stop停止掉的进程,用reload或者update都不会自动重启

跟一般的Linux系统一样的。

首先需要安装nginx或者是Apache,但是个人建议是nginx,

然后安装uwsgi,

然后就是nginx以及uwsgi的配置了,这个跟Linux系统也是一样的。

网上搜一篇nginx+uwsgi+django的部署文档,按照上面的一步步来就OK的!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7946876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存