免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Django(八)部署項(xiàng)目到服務(wù)器nginx和uwsgi配置

簡(jiǎn)介

  在配置部署前先簡(jiǎn)單描述一下nginx和uWSGI,只是個(gè)人學(xué)習(xí)和理解的,有不對(duì)的地方還望指出。
  

  • nginx:

      nginx是一個(gè)反向代理服務(wù)器,客戶(hù)端對(duì)Web服務(wù)器的訪(fǎng)問(wèn)需要先經(jīng)過(guò)反向代理服務(wù)器,再由代理服務(wù)器決定目標(biāo)服務(wù)器,這樣可以防止外部程序?qū)eb服務(wù)器的直接攻擊;其次可根據(jù)負(fù)載情況去請(qǐng)求不同的目標(biāo)服務(wù)器達(dá)到負(fù)載均衡;還有可以知己處理客戶(hù)端對(duì)于靜態(tài)文件的請(qǐng)求,而不用在去請(qǐng)求目標(biāo)服務(wù)器。

  • uWSGI:

      一個(gè)服務(wù)器或中間件,其實(shí)現(xiàn)了uwsgi協(xié)議,請(qǐng)求應(yīng)用程序并返回處理后的信息。

      uWSGI是可以完成所有和瀏覽器的交互過(guò)程的,但是還是要使用nginx的原因就是上面講的nginx的功用,一個(gè)uwsgi很可能不夠用,即使開(kāi)了多個(gè)process和thread也是不行,畢竟一臺(tái)機(jī)器的cpu和內(nèi)存都是有限的,有了nginx做代理,一個(gè)nginx可以代理多臺(tái)uwsgi實(shí)現(xiàn)負(fù)載均衡的。

安裝nginx和uwsgi

首先我是基于python3的,ubuntu版本為16.04,你想配置python3的話(huà)需先安裝python3和pip3,然后執(zhí)行如下命令安裝:

sudo apt-get install nginxsudo pip3 install uwsgi

  如果沒(méi)有報(bào)錯(cuò)基本就安裝成功了,這里就不再做測(cè)試。細(xì)心點(diǎn)會(huì)發(fā)現(xiàn)nginx是用apt-get安裝的,而uwsgi是用pip3,原因就是uwsgi是pyhon包,而nginx是一個(gè)類(lèi)似sql的服務(wù),也就是說(shuō)nginx可以開(kāi)機(jī)啟動(dòng),不手動(dòng)關(guān)閉或者關(guān)閉服務(wù)器是不會(huì)停止的。
  我們想把項(xiàng)目部署到服務(wù)器上就必須使用它,假設(shè)我們?cè)诒镜剡B接上了我們購(gòu)買(mǎi)的服務(wù)器(遠(yuǎn)程),然后使用uwsgi拉起我們的項(xiàng)目(后面講解怎么拉起項(xiàng)目),這時(shí)候我們就能通過(guò)外網(wǎng)訪(fǎng)問(wèn)了,但是一旦本地的機(jī)器斷開(kāi)與服務(wù)器的連接后就無(wú)法訪(fǎng)問(wèn)了。原因就是用uwsgi拉起項(xiàng)目只是在服務(wù)器端創(chuàng)建了一個(gè)進(jìn)程,而這個(gè)進(jìn)程是遠(yuǎn)程連接的子進(jìn)程,遠(yuǎn)程連接斷開(kāi)子進(jìn)程也就結(jié)束了。所以我們需要通過(guò)nginx來(lái)連接uwsgi,由于nginx是類(lèi)似sql的服務(wù),所以一旦開(kāi)啟就會(huì)一直在后臺(tái)運(yùn)行,只要服務(wù)器不關(guān)閉項(xiàng)目就處于運(yùn)行狀態(tài)。

項(xiàng)目上傳及環(huán)境配置

首先找到你的本地Django項(xiàng)目,比如我的項(xiàng)目名為bsite,絕對(duì)路徑為:/home/beau/bsite

bsite    bsite        __init__.py        settings.py        urls.py        wsgi.py    apps        ...    media        ...    static        ...    templates        ...    db.sqlite3    manage.py

將項(xiàng)目上傳到服務(wù)器:使用本地機(jī)器ctr+alt+t打開(kāi)終端:

# 連接服務(wù)器,輸入yes和密碼進(jìn)行連接,以下IP和名稱(chēng)改為你自己的,下述IP是我隨意寫(xiě)的,只做樣例,我真正使用的沒(méi)有寫(xiě)出ssh root@192.168.27.110# 成功后創(chuàng)建項(xiàng)目上傳目錄mkdir /var/project
注意:服務(wù)器上的項(xiàng)目不要放在root目錄,放在root目錄里在使用uwsgi的時(shí)候?qū)懭?socket會(huì)出現(xiàn)權(quán)限錯(cuò)誤。其它目錄都沒(méi)問(wèn)題。

ctr+c結(jié)束連接回到本機(jī)終端,進(jìn)入項(xiàng)目所在目錄:

# 注意需要ctr+c結(jié)束連接回到本機(jī)終端,進(jìn)入項(xiàng)目所在目錄cd /home/beau/# 上傳項(xiàng)目@后為服務(wù)器的IP,需要先在服務(wù)器創(chuàng)建/var/project/目錄(上面步驟已經(jīng)做了)sudo scp -r bsite root@192.168.27.110:/var/project/cd /home/beau/

我們?cè)龠B接到服務(wù)器,然后給服務(wù)器安裝nginx、uwsgi、django、python、mysql,這些就不講了。

配置nginx

打開(kāi)本地的終端(ctr+alt+t),連接到服務(wù)器(ssh root@192.168.27.110),將uwsgi_params文件拷貝到項(xiàng)目文件夾下。uwsgi_params文件在/etc/nginx/目錄下:

cp /etc/nginx/uwsgi_params /var/project/bsitevim /etc/nginx/sites-enabled/default

修改default文件為:

# nginx需要連接的組件upstream django {    # server unix:///var/project/bsite/uwsgi.sock; # 文件socket    server 0.0.0.0:8080; # 網(wǎng)絡(luò)端口socket(我們先使用這個(gè),8080代表在服務(wù)端項(xiàng)目在8080端口運(yùn)行)}# 服務(wù)器配置server {    # 監(jiān)聽(tīng)端口,通過(guò)域名加這個(gè)端口號(hào)(192.168.27.110:9999)就可訪(fǎng)問(wèn)項(xiàng)目,而不是8080端口    listen   9999;    server_name 192.168.27.110;     # 如果你有域名則配置如下,沒(méi)有域名則配置你的服務(wù)器ip(如上)    # listen   80;    # server_name www.nginx.netcome.net;     charset     utf-8;    # 最大上傳大小    client_max_body_size 75M;    # Django的靜態(tài)media文件路徑    location /media  {        alias /var/project/bsite/media;    }    # Django的靜態(tài)static文件路徑    location /static {        alias /var/project/bsite/static;    }    # Django的項(xiàng)目配置    location / {        # uwsgi的方式使用上面upstream django的配置,先使用服務(wù)端口        uwsgi_pass  django;        include     /var/project/bsite/uwsgi_params; # 復(fù)制的 uwsgi_params路徑    }}

保存然后開(kāi)啟nginx服務(wù)

/etc/init.d/nginx start

往/var/project/bsite/media里上傳一張圖片test.png(在本地使用sudo scp -r test.png root@192.168.27.110:/var/project/上傳圖片到服務(wù)器,需要先進(jìn)入test.png圖片的目錄),然后訪(fǎng)問(wèn)http://192.168.27.110:9999/media/test.png查看到圖片則成功:

配置uwsgi

如下連接到服務(wù)器,并進(jìn)入項(xiàng)目目錄,創(chuàng)建一個(gè)uwsgi.ini的配置文件

ssh root@192.168.27.110cd /var/project/bsitevim uwsgi.ini

然后填入以下內(nèi)容(不會(huì)vim請(qǐng)查詢(xún))

注意目錄,配置問(wèn)題多半出在目錄上
[uwsgi]# 項(xiàng)目目錄chdir = /var/project/bsite/# 指定項(xiàng)目的wsgi文件,我的項(xiàng)目是bsite所以為bsite.wsgi,你自己的對(duì)應(yīng)改module = bsite.wsgi:application# 進(jìn)程個(gè)數(shù)workers = 5pidfile = /var/project/bsite/uwsgi.pid# 指定靜態(tài)文件,指定在那里就使用哪里,必須和nginx的default文件里配置的路徑一樣(當(dāng)然這個(gè)目錄可以是隨意的,在項(xiàng)目之外也可以,只要保證和nginx的靜態(tài)文件路徑一樣就行)static-map =/static=/var/project/bsite/static# 啟動(dòng)uwsgi的用戶(hù)名和用戶(hù)組uid=rootgid=root# 啟用主進(jìn)程master=true# 自動(dòng)移除unix Socket和pid文件當(dāng)服務(wù)停止的時(shí)候vacuum=true# 序列化接受的內(nèi)容,如果可能的話(huà)thunder-lock=true# 啟用線(xiàn)程enable-threads=true# 設(shè)置自中斷時(shí)間harakiri=30# 設(shè)置緩沖post-buffering=4096# 設(shè)置日志目錄daemonize=/var/project/bsite/uwsgi.log# 指定sock的文件路徑socket=/var/project/bsite/uwsgi.sock

保存(esc + :wq)然后進(jìn)入uwsgi.ini目錄使用寫(xiě)好的uwsgi.ini配置:

cd /var/project/bsite/uwsgi --ini uwsgi.inivim /etc/nginx/sites-enabled/default

然后你會(huì)在/var/project/bsite目錄下看到生成的uwsgi.sock、uwsgi.pid、uwsgi.log文件:
接著修改default文件,將upstream django修改為如下(這里的server unix:///var/project/bsite/uwsgi.sock; # 文件socket一定和uwsgi那里配置的socket=/var/project/bsite/uwsgi.sock路徑一樣,nginx會(huì)使用uwsgi生成的.socket文件),其它保持不變:

# nginx需要連接的組件upstream django {    server unix:///var/project/bsite/uwsgi.sock; # 文件socket    # server 0.0.0.0:8080;}

重新啟動(dòng)項(xiàng)目:

cd /var/project/bsite/uwsgi --reload uwsgi.pid/etc/init.d/nginx restart

如果nginx配置的域名則訪(fǎng)問(wèn):http://www.nginx.netcome.net/home(填寫(xiě)你的域名加上網(wǎng)站的首頁(yè)路由),如果是服務(wù)器則訪(fǎng)問(wèn):http://192.168.27.110:9999/home。這時(shí)你會(huì)看到你自己的首頁(yè),至此配置已經(jīng)完成。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
如何在uwsgi和nginx上部署Django項(xiàng)目?
vue django部署
day91:luffy:基于vue+drf的路飛學(xué)城項(xiàng)目后端部署
uWSGI、WSGI和uwsgi
uWSGI相關(guān)
Web 開(kāi)發(fā)的重要概念辨析:CGI、WSGI、uWSGI、ASGI……
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服