搭建服务器虚拟环境

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进行服务器部署的更多相关文章

  1. 【Flask】 利用uWSGI和Nginx发布Flask应用

    因为Flask比较容易上手,之前也拿flask写过几个小项目,不过当时天真地以为只要在服务器上nohup跑一个python脚本就算是成功发布了这个flask项目.实际上这还面临很多问题,比如并发性不好 ...

  2. uwsgi wsgi nginx centos7.2部署flask

    请原谅我比较懒,直接粘贴onenote笔记了 方法一测试完成后,建议用方法三:uwsgi,ginx部署

  3. 阿里云服务器部署笔记一(python3、Flask、uWSGI、Nginx)

    一.重置密码,并重启服务器 二.安全组配置>配置规则>添加安全组规则(为了能在本地ssh到实例) 配置如下: 此配置为允许任意公网IP登陆实例,注意windows与Linux系统端口范围不 ...

  4. 【使用uWSGI和Nginx来设置Django和你的Web服务器】

    目录 安装使用uWSGI 配置Nginx结合uWSGI supervisor Django静态文件与Nginx配置 @ *** 所谓WSGI . WSGI是Web服务器网关接口,它是一个规范,描述了W ...

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

    简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...

  6. 服务器部署 Vue 和 Django 项目的全记录

    本篇记录我在一个全新服务器上部署 Vue 和 Django 前后端项目的全过程,内容包括服务器初始配置.安装 Django 虚拟环境.python web 服务器 uWSGI 和反向代理 Nginx ...

  7. Linux服务器部署.Net Core笔记:目录

        目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...

  8. django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从

    一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.d ...

  9. 云服务器部署Python项目(nginx+uwsgi+mysql+项目)

    python项目部署到云服务器 关注公众号"轻松学编程"了解更多. 一.硬件准备 云服务器,系统ubuntu_16_04 . 注意:要在安全组中开放Http的80端口. 二.软件准 ...

随机推荐

  1. Python中的数据结构

    Python中的数据结构 这里总结一下Python中的内置数据结构(Built-in Data Structure):列表list.元组tuple.字典dict.集合set,涵盖的仅有部分重点,详细地 ...

  2. mybatis-generator插件执行报错:Cannot resolve classpath entry

    记录一个小问题 使用了mybatis-generator插件自动生成实体类,DAO,Mapper,在执行时报错.报错信息如下 Failed to execute goal org.mybatis.ge ...

  3. iOS -数据持久化方式-以真实项目讲解

    前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎 ...

  4. C#集合。

    集合命名空间: using system.collections. 非泛型集合 using system.collections.Generic.  泛型集合 为什么要用集合: 1.数组一旦声明长度就 ...

  5. sudo: cd: command not found

    事件起因 今天在aws ubutun上忽然发现的一个问题,执行sudo cd 时出现 sudo: cd: command not found 原因 shell shell是一个命令解析器 所谓shel ...

  6. Java_冒泡排序_原理及优化

    冒泡排序及其优化 一.原理及优化原理 1.原理讲解 冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较, ...

  7. JSTL_Core标记库

    一.   说明 如有转载,请标明出处 本博讲解JSTL中的core库 对标记属性进行介绍时,首先介绍必写的属性,然后带有默认值的属性,其次是其余属性,这三类属性中间用空行隔开 二:core标记库库 C ...

  8. 【Java每日一题】20170215

    20170214问题解析请点击今日问题下方的“[Java每日一题]20170215”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...

  9. Java学习笔记之——多态、抽象

    1. 多态 多态:同一种事物调用同一个方法有不同的表现行为.(同一类型操作,作用于某一类对象,可以有不同的解释,产生不同的执行结果) 应用场景;当你定义一个功能性的方法可以使用多态的概念 前提:子类继 ...

  10. javascript html页面中的内容替换

    <script language="javascript"> function ffRed(){  var xsxf = document.getElementById ...