1. 程式人生 > >利用uWSGI和nginx進行服務器部署

利用uWSGI和nginx進行服務器部署

serve ini python2 存儲 mysql rep not chdir 初始

搭建服務器虛擬環境

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/ [email protected]:/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進行服務器部署