第3回-在nginx下部署項(xiàng)目

創(chuàng)建時(shí)間:20161223

本章小目標(biāo)

  • 安裝nginx
  • 部署已有的hi_weui項(xiàng)目
  • 采用uwsgi方式部署
  • 采用supervisor管理應(yīng)用進(jìn)程
  • 總結(jié)常用的操作命令
  • 總結(jié)常用的配置

參考鏈接

1 安裝nginx,uwsgi颈渊,supervisor等

參考上面鏈接逛漫,略

2 編輯uwsgi啟動(dòng)配置文件

在hi_weui的項(xiàng)目目錄下創(chuàng)建文件

$ pwd
/home/bit/coding_app/hi_weui

$ cat hi_weui_uwsgi.ini 
[uwsgi]
# the base directory (full path)
chdir=/home/bit/coding_app/hi_weui

# Django's wsgi file
module=hi_weui.wsgi

# the virtualenv (full path)
home=/home/bit/.virtualenvs/realkpi

master=true
processes = 8
threads = 4
vacuum = true
chmod-socket = 666

socket = /home/bit/coding_app/hi_weui/hi_weui.sock

3 編輯supervisor配置文件
同樣放在hi_weui項(xiàng)目目錄下

$ pwd
/home/bit/coding_app/hi_weui
(sudo) echo_supervisord_conf > ./supervisord.conf
$ tail supervisord.conf    #只是在模板后面增加hi_weui相關(guān)配置
;files = relative/directory/*.ini

[program:hi_weui]
command=/home/bit/.virtualenvs/realkpi/bin/uwsgi --ini /home/bit/coding_app/hi_weui/hi_weui_uwsgi.ini
directory=/home/bit/coding_app/hi_weui
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

4 編輯nginx服務(wù)配置文件

在nginx目錄下創(chuàng)建

$ pwd
/etc/nginx/sites-available
$ cat hi_weui_nginx.conf
upstream django{
    #server localhost:8001;
    server unix:///home/bit/coding_app/hi_weui/hi_weui.sock;
}
server {
    listen      8087;
    server_name localhost;
    charset     utf-8;
 
    client_max_body_size 75M;
 
    location /media  {
        alias /home/bit/coding_app/hi_weui/media;
    }
 
    location /static {
        alias /home/bit/coding_app/hi_weui/collected_static;
    }
 
    location / {
        uwsgi_pass  django;
        include     /etc/nginx/uwsgi_params;
    }

}

5 激活nginx 對(duì)hi_weui的服務(wù)

其實(shí)就是創(chuàng)建了一個(gè)鏈接

$ sudo ln -s /etc/nginx/sites-available/hi_weui_nginx.conf /etc/nginx/sites-enabled/hi_weui_nginx.conf 
$ ls -l ../sites-enabled/
total 0
lrwxrwxrwx 1 root root 34 Dec 26 16:22 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root 45 Dec 27 11:23 hi_weui_nginx.conf -> /etc/nginx/sites-available/hi_weui_nginx.conf

6 訪問流總結(jié)

整理一下思路:
按照現(xiàn)有的配置匪煌,大致過程如下稽揭。

  1. 網(wǎng)頁訪問nginx服務(wù):localhost:8087
  2. nginx接到socket:

server unix:///home/bit/coding_app/hi_weui/hi_weui.sock;

  1. socket接到uwsgi:

socket = /home/bit/coding_app/hi_weui/hi_weui.sock

  1. uwsgi加載模塊:

module=hi_weui.wsgi

  1. 模塊由django最終提供服務(wù)。

7 啟動(dòng)服務(wù)

7.1 測(cè)試在django開發(fā)服務(wù)上正常

$ sh start.sh  react

訪問:http://127.0.0.1:8088/
執(zhí)行一次start.sh腳本的目的是重新編譯一次應(yīng)用浪蹂,并搜集相關(guān)靜態(tài)文件到collected_static目錄下

$ sh stop.sh   #關(guān)掉開發(fā)服務(wù)器

7.2 啟動(dòng)nginx

$ sudo service nginx restart

訪問:http://127.0.0.1:8087/ 此時(shí)還無法正常顯示
訪問:http://127.0.0.1:80 看到正常的nginx提示頁面

7.3 啟動(dòng)supervisor

用之前寫好的配置文件啟動(dòng)

$ pwd
/home/bit/coding_app/hi_weui

$ supervisord -c supervisord.conf

$ supervisorctl   #打開客戶端管理抵栈,看到hi_weui已經(jīng)啟動(dòng)了
hi_weui                          RUNNING   pid 17202, uptime 0:00:39
supervisor> status
hi_weui                          RUNNING   pid 17202, uptime 0:00:42
supervisor> help 可以看更多命令幫助
supervisor> stop hi_weui   #停應(yīng)用
hi_weui: stopped
supervisor> restart hi_weui #重啟應(yīng)用
hi_weui: ERROR (not running)   #因?yàn)閯傄呀?jīng)停止了
hi_weui: started 

訪問:http://127.0.0.1:8087/ 此時(shí)已經(jīng)可以正常顯示。
為什么用supervisor呢? 如果nginx上同時(shí)啟動(dòng)了許多項(xiàng)目坤次,則可以通過nginx啟停所有項(xiàng)目古劲,或者是通過supervisor分別啟停1個(gè)項(xiàng)目。

8 訪問日志

8.1 nginx配置文件

/etc/nginx$ cat nginx.conf 
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

可以看到對(duì)應(yīng)的日志目錄

8.2 關(guān)于django print日志輸出

部署在nginx上后浙踢,print輸出是不顯示的绢慢,如果要打印日志。推薦使用python logging模塊洛波,可以在django的settings文件上配置胰舆。

從第1回到這里,就已經(jīng)完成了react項(xiàng)目的腳手架蹬挤,并集成到django缚窿,最終部署到nginx上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焰扳,一起剝皮案震驚了整個(gè)濱河市倦零,隨后出現(xiàn)的幾起案子误续,更是在濱河造成了極大的恐慌,老刑警劉巖扫茅,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹋嵌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葫隙,警方通過查閱死者的電腦和手機(jī)栽烂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恋脚,“玉大人腺办,你說我怎么就攤上這事≡忝瑁” “怎么了怀喉?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)船响。 經(jīng)常有香客問我躬拢,道長(zhǎng),這世上最難降的妖魔是什么见间? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任估灿,我火速辦了婚禮,結(jié)果婚禮上缤剧,老公的妹妹穿的比我還像新娘。我一直安慰自己域慷,他們只是感情好荒辕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犹褒,像睡著了一般抵窒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叠骑,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天李皇,我揣著相機(jī)與錄音,去河邊找鬼宙枷。 笑死掉房,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慰丛。 我是一名探鬼主播卓囚,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼诅病!你這毒婦竟也來了哪亿?” 一聲冷哼從身側(cè)響起粥烁,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝇棉,沒想到半個(gè)月后讨阻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篡殷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年钝吮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贴唇。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搀绣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戳气,到底是詐尸還是另有隱情链患,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布瓶您,位于F島的核電站麻捻,受9級(jí)特大地震影響蔓彩,放射性物質(zhì)發(fā)生泄漏从媚。R本人自食惡果不足惜妹萨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一星岗、第九天 我趴在偏房一處隱蔽的房頂上張望沥匈。 院中可真熱鬧设褐,春花似錦倡缠、人聲如沸牵啦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘁傀,卻和暖如春兴蒸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背细办。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工橙凳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笑撞。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓岛啸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親娃殖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子值戳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容