1、搭建服務(wù)器虛擬環(huán)境
? ? ? ? 1.1 從本地電腦進如虛擬環(huán)境期贫,執(zhí)行命令到處當前項目依賴的所有包的版本名稱
????????????????pip? freeze >install.txt
? ? ? ? 1.2通常采用ftp軟件將項目代碼和install.txt文件上傳到服務(wù)器跟匆,此處為簡便采用scp命令
????????????????scp? 項目文件名? ?-r? ?服務(wù)器用戶名@服務(wù)器地址:/服務(wù)器保存文件的路徑/
? ? ? ? 1.3 遠程連接服務(wù)器异袄,創(chuàng)建虛擬環(huán)境
????????????????ssh? ?39.106.48.100? ?-l? root
? ? ? ? 1.4 創(chuàng)建虛擬環(huán)境通砍,在虛擬環(huán)境上安裝包
????????????????mkvirtualenv? 虛擬環(huán)境名(如本項目虛擬環(huán)境名django3.5)
????????????????pip? install -r install.txt
? ? ? ? 1.5 創(chuàng)建完虛擬環(huán)境后通過虛擬環(huán)境進入項目目錄進行調(diào)試:
????????????????python? ?manage.py? runserver? ?0.0.0.0:8000
????????????????????????????????圖(1)在虛擬環(huán)境中通過django啟動項目
????????????在瀏覽器地址類輸入39.106.48.100:8000查看效果如下:
2、 WSGI簡介
????????在生產(chǎn)環(huán)境中使用WSGI作為python web的服務(wù)器
? ? ? ? WSGI:全拼為Python Web Server Gateway Interface烤蜕,Python Web服務(wù)器網(wǎng)關(guān)接口封孙,是Python應(yīng)用程序或框架和Web服務(wù)器之間的一種接口,被廣泛接受讽营。WSGI沒有官方的實現(xiàn),因為WSGI更像一個協(xié)議虎忌,只要遵照這些協(xié)議,WSGI應(yīng)用(Application)都可以在任何服務(wù)器(Server)上運行
????????項目默認會生成一個wsgi.py文件橱鹏,確定了settings模塊膜蠢、application對象
application對象:在Python模塊中使用application對象與應(yīng)用服務(wù)器交互
settings模塊:用于進行項目配置
????????2.1 uWSGI的安裝與配置
????????????????uWSGI實現(xiàn)了WSGI的所有接口,是一個快速莉兰、自我修復(fù)挑围、開發(fā)人員和系統(tǒng)管理員? ? ? ? ? ? ? 友好的服務(wù)器。
????????????????uWSGI代碼完全用C編寫糖荒,效率高杉辙、性能穩(wěn)定
? ? ? ? ? ? ?2.1.1 安裝uWSGI
? ? ? ? ? ? ? ? ? ? ? ? pip install uwsgi
? ? ? ? ? ? ? ?2.1.2 配置uWSGI,在項目目錄下創(chuàng)建uwsgi.ini文件捶朵,配置如下
????????????????[uwsgi]
? ? ? ? ? ? ? ? 使用nginx連接時使用
? ? ? ? ? ? ? ? socket=192.168.1.224:8080
? ? ? ? ? ? ? ? 直接做web服務(wù)器使用
????????????????????http=192.168.1.224:8080
? ? ? ? ? ? ? ? 項目目錄
????????????????chdir=/home/shenxian01/
? ? ? ? ? ? ? ? 項目中wsgi.py文件的目錄蜘矢,相對于項目目錄
????????????????wsgi-file=ixianpin/wsgi.py
????????????????processes=4
????????????????threads=2
????????????????master=True
????????????????pidfile=uwsgi.pid
????????????????daemonize=uwsgi.log
? ? ? ? ? ? ????關(guān)于此配置文件的說明:http與socket之后的ip地址一般應(yīng)填寫公網(wǎng)ip,由于阿里云為? ? ? ? ? ?彈性ip也就是ifconfig之后只顯示有內(nèi)網(wǎng)地址沒有公網(wǎng)地址综看,則此處填寫內(nèi)網(wǎng)地址而不能填? ? ? ? ? ?寫公網(wǎng)地址品腹,否則uwsgi不能正常啟動。
? ? ? ? ? ? ? 2.1.3 啟動uwsgi
????????????????????????uwsgi? --ini? ?uwsgi.ini
? ? ? ? ? ? ? ? ?啟動之后再次進行調(diào)試红碑,在瀏覽器輸入地址:39.106.48.100:8080舞吭,效果如下
????????????????????????????????????????????????????圖2(1)啟動uwsgi調(diào)試結(jié)果
????????????????看到如圖所示說明,uwsgi啟動成功并正常工作
????????????????查看
????????????????ps? ajx|grep uwsgi
? ? ? ? ? ? ? ? 如有錯誤查看uwsgi.log文件查看錯誤的問題然后予以解決
????????????????效果如下圖:
????????????????uwsgi的停止
????????????????uwsgi? ?–stop uwsgi.pid
3 句喷、Nginx的安裝與配置
? ? ? ? Nginx作為一款面向性能設(shè)計的HTTP服務(wù)器镣典,不但在穩(wěn)定性和性能方面相當出眾,而且它模塊化的設(shè)計讓其具有異常靈活的擴展性唾琼。
使用nginx的作用主要包括負載均衡兄春、反向代理
? ? ? ?3.1 安裝:
????????將提前從官網(wǎng)下載好的nginx上傳到服務(wù)器,解壓縮
????????tar zxvf nginx-1.6.3.tar.gz
????????進入nginx-1.6.3目錄锡溯,一次執(zhí)行一下命令安裝
????????./configure
????????make
????????sudo make install
? ? ? ? 3.2 配置
?????????????????默認安裝到/usr/local/nginx目錄下赶舆,作為原始配置文件哑姚,我們一般不做修改,進入/etc/nginx/sites-available/目錄下芜茵,復(fù)制default文件為django叙量,修改django配置文件如下:
????????server{
????????listen 9000;
????????location/ {
????????include uwsgi_params;
????????uwsgi_pass 192.168.1.224:8080;
????????}
????????location /static {
????????alias/var/www/dailyfresh/static/;
????????}
????????然后建立軟連接:
????????ln? -s? /etc/nginx/sites-available/django? ? /etc/nginx/sites-enabled/
? ? ? ? 3.3 啟動
????????????service nginx start
????????????外網(wǎng)訪問39.106.48.100校驗nginx是否開啟成功
? ? ? ? ?如圖所示則表示開啟nginx成功
? ? ? ? ?修改/etc/nginx/sites-available/目錄下的default文件,將默認監(jiān)聽的80端口改為9000九串,然 后同級目錄下的的django文件绞佩,將測試設(shè)置的監(jiān)聽端口9000端口改為80端口,重新開啟nginx服 務(wù)
????????service nginx reload
????????使用這個命令不需要停止nginx服務(wù)
? ? ? ?3.4 部署效果展示
????????????至此所有配置均已完成開始校驗部署效果