百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

云服务器部署1【Nginx、Supervisor、Flask、Python】

bigegpt 2024-09-27 00:40 3 浏览

目录

云服务器部署1【Nginx、Supervisor、Flask、Python】(本篇)

云服务器部署2【Nginx支持Flask多域名】

前言

后续准备编写一系列的教程,涉及到微信公众号、小程序、Android、Python以及C#\WPF相关。本篇文章主要记录在公有云服务器上部署Python的步骤,本篇的步骤也适用于阿里云服务器,其它的服务器大壮没有测试过,也欢迎随时讨论。如有哪里不对,欢迎批评指正,谢谢。

环境

云服务器版本:Ubuntu 16.04.1 LTS

登陆云服务器

通过SSH登录腾讯云服务器,该云服务器是我买来做实验用的,刚买的,洁净如新。

安装Nginx

执行指令

$sudo apt-get install nginx

安装成功之后,可以立即访问云服务器的公网IP地址或者解析到该IP地址的域名,因为我这里还没有将域名绑定到该服务器,所以直接访问我的公网IP地址。

到这里就说明我们的Nginx服务安装成功。一笔带过,Nginx安装好的文件位置如下:

/usr/sbin/nginx:主程序

/etc/nginx/:存放配置文件,后续我们会用到

/usr/share/nginx/:存放Nginx默认指向的静态网页

/var/log/nginx/:存放日志

解析域名到服务器

接下来,我们将域名解析到服务器,比如我这里将demo.2019club.cn解析到云服务器。

登陆腾讯云控制台,进入到域名列表

点击箭头所指的“解析”,跳转到“解析管理”界面

点击“添加记录”

主机记录项输入二级域名,这里我的是demo,记录值项填写云服务器的公网IP地址,然后点击“保存”按钮。

然后我们直接在浏览器里输入二级域名,看是否成功解析到云服务器。

可以看到二级域名也已经可以访问,如果你的访问不了,也可能是因为TTL生效时间没到,可以等会再看。

PS:解析域名到阿里云服务器的步骤也是类似的。

安装包管理工具pip、pip3

执行以下指令

$ sudo apt-get install python-pip python3-pip

从下图可以看到已经安装成功了

安装Virtualenv

执行指令(注意,这里使用的是pip,而不是pip3)

$sudo pip install virtualenv

执行指令

$virtualenv --version

可以看到也安装成功了。

Python3 Flask最小应用

我在目录/home/ubuntu/webroot/demo下新建应用,该目录路径后续会用到。

执行指令

$virtualenv -p python3 venv

$source venv/bin/activate

$pip install flask

$pip install flask_script

执行指令,新建manage.py

$vim manage.py

manage.py文件内容如下

from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
@app.route('/')
def index():
	return 'Hello 玖零大壮'
if __name__ == '__main__':
	manager.run()

执行指令

$python manage.py runserver

可以看到程序运行没有问题。

配置uWSGI生产环境

执行指令

$pip install uwsgi

执行指令

$vim uconfig.ini

uconfig.ini文件内容如下

[uwsgi]
# 外部访问地址,这里我使用的是socket,而不是用http
# 同时端口号,可以不使用这个9000,也可以使用其他的
socket=127.0.0.1:9000
# 指向项目目录,这里的目录是我们的程序的根目录
chdir=/home/ubuntu/webroot/demo/
# flask启动程序文件
wsgi-file=manage.py
# flask在manage.py文件中的app名
callable=app
# 处理器数,我的服务器是单核双线程的
# 不知道的话,写1就没问题
processes=1
# 线程数
threads=2

执行指令

$uwsgi uconfig.ini

输出以下内容

(venv) ubuntu@VM-0-3-ubuntu:~/webroot/demo$ uwsgi uconfig.ini 
[uWSGI] getting INI configuration from uconfig.ini
*** Starting uWSGI 2.0.18 (64bit) on [Sat Mar 16 00:57:24 2019] ***
compiled with version: 5.4.0 20160609 on 15 March 2019 16:42:36
os: Linux-4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018
nodename: VM-0-3-ubuntu
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ubuntu/webroot/demo
detected binary path: /home/ubuntu/webroot/demo/venv/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/ubuntu/webroot/demo/
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 7331
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:9000 fd 3
Python version: 3.5.2 (default, Nov 12 2018, 13:43:14) [GCC 5.4.0 20160609]
Python main interpreter initialized at 0xed6240
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 83344 bytes (81 KB) for 2 cores
*** Operational MODE: threaded ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0xed6240 pid: 21793 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 21793, cores: 2)

可以看到配置文件uconfig.ini没有错误

现在可以退出virtualenv的虚拟环境了

执行指令

$deactivate

安装 Supervisor

Supervisor可以同时启动多个应用,最重要的是,当某个应用Crash的时候,Supervisor可以自动重启该应用,保证可用性。

执行指令

$sudo apt-get install supervisor

$vim supervisor_demo.conf

文件supervisor_demo.conf内容如下

[program:demo]
# 启动命令入口 
# 格式为command=/your/path/uwsgi /your/path/uconfig.ini
command=/home/ubuntu/webroot/demo/venv/bin/uwsgi /home/ubuntu/webroot/demo/uconfig.ini
# 命令程序所在目录
directory=/home/ubuntu/webroot/demo/
# 运行命令的用户名
user=root
autostart=true
autorestart=true
#日志路径
stdout_logfile=/home/ubuntu/webroot/demo/uwsgi_supervisor.log

Supervisor 的全局的配置文件位置在:/etc/supervisor/supervisor.conf ,正常情况下我们并不需要去对其作出任何的改动,只需要将新建的supervisor_demo.conf 文件放在/etc/supervisor/conf.d/下。

执行指令

$sudo mv supervisor_demo.conf /etc/supervisor/conf.d/

配置Nginx自定义网站根目录

执行指令

$cd /etc/nginx/sites-available/

$sudo vim demo_2019club_cn

文件demo_2019club_cn内容如下

server {

listen 80;

server_name demo.2019club.cn;

location / {

uwsgi_pass127.0.0.1:9000;#和uconfig.ini中的socket地址保持一致

includeuwsgi_params;

uwsgi_param UWSGI_PYHOME /home/ubuntu/webroot/demo/venv;#指向虚拟环境目录

uwsgi_param UWSGI_CHDIR/home/ubuntu/webroot/demo;#指向网站根目录

uwsgi_param UWSGI_SCRIPT manage:app;#指定启动程序

}

}

执行指令

$sudo ln -s /etc/nginx/sites-available/demo_2019club_cn /etc/nginx/sites-enabled/demo_2019club_cn

$sudo service supervisor restart

$sudo service nginx restart

下面可以访问我们的网站了

结语

文章中将步骤详细记录,对其中的概念没有多做解释,如有不懂,可以去搜索相关内容或者留言,谢谢。

//**************************************************************

//转载请将该部分内容复制,否则侵权必究

//禁止【东方头条】转载!!!

//作者:玖零大壮

//头条号@玖零大壮

//公众号@玖零大壮

//原文链接:https://www.toutiao.com/i6668632623864087047/

***************************************************************/

相关推荐

有些人能留在你的心里,但不能留在你生活里。

有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...

Python学不会来打我(34)python函数爬取百度图片_附源码

随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

软网推荐:图像变变变 一“软”见分晓

当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...

首款WP8.1图片搜索应用,搜照片得资料

首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...

分享一组美图(图片来自头条)(头条美女头像)

...

盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载

出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...

微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版

IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...

谷歌手把手教你成为谣言终结者 | 域外

刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...

NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!

还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...

为庆祝杜特尔特到访,这个国家宣布全国放假?

(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...

一课译词:毛骨悚然(毛骨悚然的意思是?)

PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...

Bing Overtakes Google in China's PC Search Market, Fueled by AI and Microsoft Ecosystem

ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...

找图不求人!6个以图搜图的识图网站推荐

【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...

浏览器功能和“油管”有什么关联?为什么要下载

现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...