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

简介: 搭建服务器虚拟环境1)在本机进入虚拟环境,执行命令导出当前需要的所有包。pip freeze > plist.txt2)通过ftp软件将项目代码和plist.txt文件上传到服务器。

搭建服务器虚拟环境

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

目录
相关文章
|
16天前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
20天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
109 60
|
21天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
127 62
|
7天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
82 2
|
7天前
|
NoSQL Linux PHP
|
8天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
45 1
|
13天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
28 1
|
17天前
|
安全 Linux 数据安全/隐私保护
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第17天】在RHEL环境下部署Subversion服务器包括安装Subversion、创建和配置版本库、启动服务器、客户端连接以及备份与恢复等步骤。通过这些步骤,可确保服务器的安全性和稳定性,满足版本控制需求。
|
21天前
|
SQL 分布式计算 大数据
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
43 2
|
24天前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
53 1