部署uwsgi以及nginx

  • 購(gòu)買服務(wù)器

可以到阿里云,騰訊云,服務(wù)器商購(gòu)買服務(wù)器和域名;
其中各服務(wù)商有試用時(shí)間段,如果用于測(cè)試則可以使用免費(fèi)的服務(wù)器。

選擇地區(qū);
選擇系統(tǒng),一般為ubuntu16.04 x 64;
自己玩的話,最低配夠了,視具體情況而定;
買完之后會(huì)讓你設(shè)置主機(jī)登錄密碼和遠(yuǎn)程密碼;

搭建服務(wù)器虛擬環(huán)境

1)在本機(jī)進(jìn)入虛擬環(huán)境,執(zhí)行命令導(dǎo)出當(dāng)前需要的所有包。

pip freeze > plist.txt

2)通過ftp軟件將項(xiàng)目代碼和plist.txt文件上傳到服務(wù)器。
3)創(chuàng)建虛擬環(huán)境,在虛擬環(huán)境上安裝包。

mkvirtualenv 虛擬環(huán)境名稱
pip install -r plist.txt

WSGI:

全稱是Web Server Gateway Interface(web服務(wù)器網(wǎng)關(guān)接口)
它是一種規(guī)范,它是web服務(wù)器和web應(yīng)用程序之間的接口
它的作用就像是橋梁,連接在web服務(wù)器和web應(yīng)用框架之間
沒有官方的實(shí)現(xiàn),更像一個(gè)協(xié)議。只要遵照這些協(xié)議,WSGI應(yīng)用(Application)都可以
在任何服務(wù)器(Server)上運(yùn)行
uwsgi:是一種傳輸協(xié)議,用于定義傳輸信息的類型。常用于在uWSGI服務(wù)器與其他網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)通信
uWSGI:是實(shí)現(xiàn)了uwsgi協(xié)議WSGI的web服務(wù)器。

  • 先更新apt軟件源
sudo apt-get update
  • uwsgi安裝

uwsgi是一個(gè)能夠運(yùn)行flask項(xiàng)目的高性能web服務(wù)器,需要先安裝兩個(gè)依賴

apt-get install build-essential python-dev
  • 然后進(jìn)行uwsgi的安裝
pip install uwsgi
  • nginx安裝
apt-get install nginx
  • mysql的安裝:
apt-get install mysql-server
apt-get install libmysqlclient-dev
  • 虛擬環(huán)境的安裝
virtualenv和virtualenvwrapper的安裝:
pip install virtualenv
pip install virtualenvwrapper

使得安裝的virtualenvwrapper生效,編輯~/.bashrc文件,內(nèi)容如下:

export WORKON_HOME=$HOME/.virtualenvs

export PROJECT_HOME=$HOME/workspace

source /usr/local/bin/virtualenvwrapper.sh
  • 使編輯后的文件生效
source ~/.bashrc

利用pycharm創(chuàng)建python項(xiàng)目
創(chuàng)建config.ini文件作為uwsgi的初始化配置文件

  • uwsgi配置:
    [uwsgi]
    # Django-related settings
        #直接做web服務(wù)器使用
    http = 127.0.0.1:8000
        #使用nginx連接時(shí)使用
    #socket = 127.0.0.1:8000
        #項(xiàng)目路徑
    chdir           =       /home/guowei/PycharmProjects/Myblog
        #wsgi文件
    module          = Myblog.wsgi
        #主進(jìn)程
    master          = true
        #指定工作進(jìn)程
    processes       = 4
        #每個(gè)工作進(jìn)程有2個(gè)線程
    threads = 2
        #后臺(tái)啟動(dòng)  日志輸出的地方
    daemonize       = uwsgi.log
        #保存主進(jìn)程的進(jìn)程號(hào)
    pidfile = uwsgi.pid
        #虛擬環(huán)境路徑
    virtualenv = /home/guowei/.virtualenvs/1807_5
  • 利用scp命令將整個(gè)項(xiàng)目上傳到遠(yuǎn)程服務(wù)器中
scp -r 本地目錄 用戶名@ip地址:遠(yuǎn)程目錄
  • 運(yùn)行uwsgi.ini服務(wù)器
uwsgi --ini uwsgi.ini 啟動(dòng)
uwsgi --stop uwsgi.pid 關(guān)閉     或killall -9 uwsgi

配置nginx服務(wù)器

  • 修改為如下內(nèi)容:
寫到http括號(hào)下

    server {
              listen 80;
              server_name 94.191.66.235;
     
              #動(dòng)態(tài)請(qǐng)求
              location / {
                  include uwsgi_params;
                  uwsgi_pass 127.0.0.1:8000;
              }
              #靜態(tài)
             location /static {
                alias 
  • 啟動(dòng)和停止nginx服務(wù)器
/etc/init.d/nginx start #啟動(dòng)
/etc/init.d/nginx stop  #停止
/etc/init.d/nginx restart 重啟
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容