前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用uWSGI和nginx进行服务器部署

利用uWSGI和nginx进行服务器部署

作者头像
全栈程序员站长
发布2021-12-23 18:43:23
1.3K0
发布2021-12-23 18:43:23
举报

搭建服务器虚拟环境

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的初始化配置文件

代码语言:javascript
复制
 #需要声明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

修改为如下内容:

代码语言:javascript
复制
 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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119574.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021年11月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建服务器虚拟环境
  • WSGI:
  • 本地项目的远程部署
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档