利用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
相關文章
- Nginx+uWSGI+Django部署web伺服器NginxDjangoWeb伺服器
- 使用 uWSGI 和 Nginx 部署 Django 專案NginxDjango
- 用uWSGI和Nginx部署Flask專案NginxFlask
- 使用uwsgi和Nginx部署flask應用NginxFlask
- Nginx+Django+uWSGI部署伺服器詳細解析NginxDjango伺服器
- nginx + uWSGI + flask應用部署NginxFlask
- 不輕鬆,伺服器部署nginx+uwsgi+djangorestfremework+react伺服器NginxDjangoRESTREMReact
- CentOS 下用 Nginx 和 uwsgi 部署 flask 專案CentOSNginxFlask
- 基於nginx和uWSGI在Ubuntu上部署DjangoNginxUbuntuDjango
- Ubuntu16.04 flask + nginx + uWSGI 部署UbuntuFlaskNginx
- uwsgi + nginx 部署python專案(一)NginxPython
- uwsgi + nginx 部署python專案(二)NginxPython
- Docker 部署 Django+Uwsgi+Nginx+MySQL+VueDockerDjangoNginxMySqlVue
- 使用nginx+uwsgi部署Django專案NginxDjango
- Flask 生產環境部署(Falsk + uWSGI + nginx)FlaskNginx
- 基於Nginx和uwsgi搭建Django部署上線環境NginxDjango
- nginx+uwsgi+flask 伺服器配置NginxFlask伺服器
- Flask——Linux+Nginx+Uwsgi+Supervisor 部署FlaskLinuxNginx
- vue+uwsgi+nginx部署路飛學城VueNginx
- Django + Uwsgi + Nginx 實現生產環境部署DjangoNginx
- 【Python】Nginx+uwsgi+Django部署程式碼PythonNginxDjango
- centos8-django專案部署 nginx+uwsgiCentOSDjangoNginx
- 阿里雲部署Django專案(nginx+uWSGI)阿里DjangoNginx
- Centos 7下Nginx+uWsgi部署Flask應用CentOSNginxFlask
- 一學就會的django專案伺服器部署nginx-uwsgi-django/buildDjango伺服器NginxUI
- Django-Nginx-uwsgiDjangoNginx
- Nginx的Uwsgi模組Nginx
- Python系列之-Nginx+uWSGI+virtualenv多專案部署PythonNginx
- django專案在uwsgi+nginx上部署遇到的坑DjangoNginx
- centos+nginx+uwsgi部署django專案上線詳解CentOSNginxDjango
- Debian部署python3+flask+uwsgi+Nginx+SupervisorPythonFlaskNginx
- CentOS7---部署Nginx+uwsgi+Django+python3環境CentOSNginxDjangoPython
- Nginx+uwsgi+Django 的web應用環境部署-完整記錄NginxDjangoWeb
- Django+uWSGI+Nginx配置DjangoNginx
- Django Mezzanine uwsgi nginx 配置DjangoNginx
- Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署最簡記錄(精簡自uwsgi官網教程)UbuntuDjangoNginx
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器UbuntuDjangoNginxMySqlPythonWeb伺服器
- 基於Ubuntu16.04的django+uwsgi+nginx安裝部署UbuntuDjangoNginx