利用uWSGI和nginx进行服务器部署
搭建服务器虚拟环境
1)在本机进入虚拟环境,执行命令导出当前需要的所有包。
pip freeze > plist.txt
2)通过ftp软件将项目代码和plist.txt文件上传到服务器。
3)创建虚拟环境,在虚拟环境上安装包。
mkvirtualenv 虚拟环境名称
pip install -r plist.txt
WSGI:
全称是Web Server Gateway Interface(web服务器网关接口)
它是一种规范,它是web服务器和web应用程序之间的接口
它的作用就像是桥梁,连接在web服务器和web应用框架之间
没有官方的实现,更像一个协议。只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行
uwsgi:是一种传输协议,用于定义传输信息的类型。常用于在uWSGI服务器与其他网络服务器的数据通信
uWSGI:是实现了uwsgi协议WSGI的web服务器。
先更新apt软件源
sudo apt-get update
python和pip
这两个环境是ubuntu16.04自带的
uwsgi安装
uwsgi是一个能够运行flask项目的高性能web服务器,需要先安装两个依赖
apt-get install build-essential python-dev
然后进行uwsgi的安装
pip install uwsgi
nginx安装
apt-get install nginx
mysql的安装:
apt-get install mysql-server
apt-get install libmysqlclient-dev
虚拟环境的安装
virtualenv和virtualenvwrapper的安装:
pip install virtualenv
pip install virtualenvwrapper
使得安装的virtualenvwrapper生效,编辑~/.bashrc文件,内容如下:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
使编辑后的文件生效
source ~/.bashrc
hello world程序的部署
利用pycharm创建python项目
创建config.ini文件作为uwsgi的初始化配置文件
#需要声明uwsgi使得uwsgi能够识别当前文件
[uwsgi]
master =true
# 使用 nginx 配合连接时使用
# socket = :5000
# 直接做web服务器使用
http =:5000
# 设定进程数
processes =4
# 设定线程数
threads =2
# 指定运行的文件
wsgi-file =app.py
#指定运行的项目的目录[自已项目在哪个目录就用哪个目录]
chdir =/root/home/hello_world
# 指定运行的实例
callable =app
# 指定uwsgi服务器的缓冲大小
buffer-size =32768
# 在虚拟环境中运行需要指定python目录
pythonpath =/root/.virtualenvs/Flask_test/lib/python2.7/site-packages
# 设置进程id文件
pidfile =uwsgi.pid
# 以守护的形式运行,设置log输出位置
daemonize =uwsgi.log
利用scp命令将整个项目上传到远程服务器中
scp -r 本地目录 用户名@ip地址:远程目录
scp -r /home/python/Desktop/hello_world/ root@39.106.21.198:/root/home
通过指令运行uwsgi.ini服务器
uwsgi --ini config.ini
查看
ps ajx|grep uwsgi
停止
uwsgi --stop uwsgi.pid
其中
--ini config.ini 表示指定运行的配置文件
-d uwsgi.log 表示uwsgi在后台运行,运行过程中产生的日志会存储在uwsgi.log中
配置nginx服务器
编辑文件:/etc/nginx/sites-available/default
修改为如下内容:
server {
listen 80 default_server;
server_name 59.110.240.237;
location / {
include uwsgi_params;
uwsgi_pass 59.110.240.237:5000;
uwsgi_read_timeout 100;
}
}
将server中原有的,上述配置中不能存在的内容注释或删除掉
启动和停止nginx服务器
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止
本地项目的远程部署
3,创建虚拟环境
mkvirtualenv 虚拟环境名称
4,在虚拟环境中安装项目所需要的依赖
pip install -r 依赖文件(requirements.txt)
5,通过scp命令将整个项目上传到远程服务器
scp -r 本地目录 用户名@ip地址:远程目录
6,创建config.ini文件,配置和之前一致,但要加入一个虚拟环境的配置
pythonpath = /root/.virtualenvs/flask_test/lib/python2.7/site-packages #表示指定虚拟环境目录,使用虚拟环境中安装的扩展
7,运行uwsgi和之前操作一致,但要修改项目目录
uwsgi --ini config.ini
8,运行nginx和之前操作一致,但要修改项目目录
/etc/init.d/nginx start
利用uWSGI和nginx进行服务器部署的更多相关文章
- 【Flask】 利用uWSGI和Nginx发布Flask应用
因为Flask比较容易上手,之前也拿flask写过几个小项目,不过当时天真地以为只要在服务器上nohup跑一个python脚本就算是成功发布了这个flask项目.实际上这还面临很多问题,比如并发性不好 ...
- uwsgi wsgi nginx centos7.2部署flask
请原谅我比较懒,直接粘贴onenote笔记了 方法一测试完成后,建议用方法三:uwsgi,ginx部署
- 阿里云服务器部署笔记一(python3、Flask、uWSGI、Nginx)
一.重置密码,并重启服务器 二.安全组配置>配置规则>添加安全组规则(为了能在本地ssh到实例) 配置如下: 此配置为允许任意公网IP登陆实例,注意windows与Linux系统端口范围不 ...
- 【使用uWSGI和Nginx来设置Django和你的Web服务器】
目录 安装使用uWSGI 配置Nginx结合uWSGI supervisor Django静态文件与Nginx配置 @ *** 所谓WSGI . WSGI是Web服务器网关接口,它是一个规范,描述了W ...
- python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试
简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...
- 服务器部署 Vue 和 Django 项目的全记录
本篇记录我在一个全新服务器上部署 Vue 和 Django 前后端项目的全过程,内容包括服务器初始配置.安装 Django 虚拟环境.python web 服务器 uWSGI 和反向代理 Nginx ...
- Linux服务器部署.Net Core笔记:目录
目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...
- django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从
一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.d ...
- 云服务器部署Python项目(nginx+uwsgi+mysql+项目)
python项目部署到云服务器 关注公众号"轻松学编程"了解更多. 一.硬件准备 云服务器,系统ubuntu_16_04 . 注意:要在安全组中开放Http的80端口. 二.软件准 ...
随机推荐
- 机器学习排序算法:RankNet to LambdaRank to LambdaMART
使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节. 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet ...
- PAT之写出这个数
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100^. 输出格式:在一行内输出n的各位数字之和 ...
- WPF 实现ScrollViewer的垂直偏移滚动跳转
问题:考虑屏幕大小,一般都是会在表单问卷的页面使用ScrollViewer.问卷中问题漏填漏选时,在提交时校验不过,需要滚动跳转至漏填漏选项. 页面如下: 每个选项使用StackPanel,并对复选框 ...
- 使用.Net Core 2.1开发Captcha图片验证码服务
更新后续篇:Captcha服务(后续1) 使用.Net Core 2.1开发Captcha验证码服务 开发工具:Visual Studio 2017 15.7.3 开发平台:64位 Windows 1 ...
- camera测试之颜色还原
测试目的:camera对色彩的还原能力 测试主要设备:24色色卡,灯箱 测试环境:1.D65/CW/A光源,照度为600±100lux,整个chart表面的亮度值相差小于10% 2.D65光源,照度为 ...
- 数据库部分(MySql)_2
分组查询 分组查询通常和聚合函数结合使用,查询条件中每个XXX就以XXX为分组的条件: 格式:每个A的平均B select avg(B) from 表名 group by A; having 在whe ...
- WPF 绕圈进度条(二)
一 以前的方案 以前写过一个圆点绕圈的进度条,根据参数圆点个数和参数每次旋转角度,主要是在cs文件中动态添加圆点,通过后台定时器,动态设置角度后用正弦余弦计算(x,y)的位置. 此方案优点:动态添加L ...
- .NET页面导出Excel
public static void CreateExcel(DataSet ds) { string filename = DateTime.Now.ToStri ...
- ubuntu16.4系统和Gentos6.8系统查看开机自启动服务
ubuntu16.4系统查看自启服务: 需要自行安装一个sysv-rc-conf的工具来查看: sudo apt-get install sysv-rc-conf 查看自启命令: sudo sysv- ...
- ES6 import and export
定义: 用来导入或者导出模块. ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";. 严格模式主要有以下限制. 变量必须声明后再使用 函数的参数不 ...