• 利用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

  • 相关阅读:
    Python基础练习
    AngularJS学习之旅—AngularJS 过滤器(七)
    AngularJS学习之旅—AngularJS 控制器(六)
    AngularJS学习之旅—AngularJS Scope作用域(五)
    AngularJS学习之旅—AngularJS 模型(四)
    AngularJS学习之旅—AngularJS 指令(三)
    AngularJS学习之旅—AngularJS 表达式(二)
    AngularJS学习之旅—AngularJS 简介(一)
    SQL Server排名或排序的函数
    Asp.net导出Excel/Csv文本格式数据
  • 原文地址:https://www.cnblogs.com/jingsupo/p/10021890.html
Copyright © 2020-2023  润新知