Nginx+uWSGI+Django+阿里云ECS環(huán)境配置筆記

前言

阿里云上注冊了一個賬號逢艘,可以免費使用一個月阿里云ECS服務(wù)器哥倔,于是試了一下,也踩了幾個坑唯沮,做個筆記供以后查閱吧。主機鏡像為debian

1.1. 用ssh鏈接到主機

首先通過阿里云的控制臺查看到主機的ip地址
主機IP

我這里的IP是 120.79.210.25堪遂,在控制臺輸入

ssh root@120.79.210.25

這里由于我已經(jīng)連接過介蛉,重置了硬盤,所以連接失敗溶褪,刪除.ssh目錄下的文件就可以重新連接了!執(zhí)行以下命令:

cd .ssh
rm -rf *

這里填yes


ssh連接成功.png

這樣就成功的連接到了主機币旧,就可以開始下面的步驟了。

2. 安裝并測試nginx

2.1. 安裝nginx
apt-get update
apt-get install nginx

安裝好了提示錯誤猿妈!先忽略吹菱,執(zhí)行命令修改文件巍虫。

vim /etc/nginx/sites-enabled/default

將原文件中的

listen 80 defaul_server;
listen [::]:80 default_server;

改為:

listen 80;
# listen [::]:80 default_server;  

提示:按i進入編輯模式鳍刷,編輯完后按ESC鍵占遥,再輸入“:”,輸入wq保存并退出输瓜。后面還需要修改這個文件瓦胎,可以一次改好,但是為了方便測試尤揣,就一步一步來吧搔啊。

2.2. 啟動nginx
/etc/init.d/nginx restart
修改后nginx啟動成功.png

然后在瀏覽器中輸入IP地址(120.79.210.25)可以看到下面頁面就表示nginx成功了!


測試nginx成功.png

3. 安裝pip和python虛擬環(huán)境

3.1. 安裝pip
apt-get install python3-pip
3.2. 安裝python虛擬環(huán)境并激活
cd /var/www 
pip3 install virtualenv  
virtualenv -p /usr/bin/python3 venv 

其中venv是虛擬環(huán)境名稱北戏,可以隨便取负芋。


創(chuàng)建虛擬環(huán)境后目錄結(jié)構(gòu).png

激活虛擬環(huán)境如下:

source /var/www/venv/bin/activate 
激活虛擬環(huán)境.png

注意圖中的 (venv) root@website:/var/www,后續(xù)的操作都在虛擬環(huán)境中嗜愈,如果中途退出再次連接旧蛾,請再次激活。

4. 安裝Django并測試

4.1 安裝django芝硬,新建一個website的項目蚜点,項目中新建一個blog的App
pip3 install django
安裝django.png

新建一個webstie的工程

django-admin startproject website
django startproject website 后目錄結(jié)構(gòu).png

新建一個 blog app

cd website
python manage.py startapp blog
4.2 測試Django
cd website
python manage.py runserver 0.0.0.0:8000

在瀏覽器中輸入 120.79.210.25:8000,再次出現(xiàn)錯誤:

  • 網(wǎng)頁無法訪問:
    解決辦法:阿里云服務(wù)器控制臺-本實例安全組-快速創(chuàng)建規(guī)則(右上角)-自定義端口:8000/8000拌阴,授權(quán)對象:0.0.0.0/0


    本地安全組.png

    添加端口.png
  • 出現(xiàn)下圖(Invalid HTTP_HOST header: '120.79.210.25:8000'. You may need to add '120.79.210.25' to ALLOWED_HOSTS.)錯誤:


    allowed hosts 錯誤.png

    解決辦法:ctrl+c停止服務(wù)器后,找到并修改settings.py文件奶镶。

cd /var/www/website/website
vim settings.py

找到ALLOWED_HOSTS = [] 修改為 ALLOWED_HOSTS = ['*'] 保存退出迟赃。再次運行服務(wù)器,刷新瀏覽器可以看到django界面就成功了厂镇。再次Ctrl+C退出服務(wù)纤壁。


django:8000 oK.png
4.3 做點簡單的測試
4.3.1 在blog文件夾下新建static,templates文件夾捺信。
  • 建立static文件夾酌媒,編寫style.css文件
cd /var/www/website/blog
mkdir static
cd static
vim style.css

style.css內(nèi)容如下:

h1{
    font-size:35px;
}
  • 編寫template文件夾,編寫 index.html文件.
cd /var/www/website/blog
mkdir templates
cd templates
vim index.html
編寫index.html.png
  • 業(yè)務(wù)邏輯
vim /var/www/website/website/urls.py

添加如下代碼:

def index(request):
        return render(request, "index.html")
  • 路由
vim /var/www/website/website/urls.py
編寫url.png
  • 注冊APP
vim /var/www/website/website/settings.py

找到INSTALLED_APPS添加‘blog’迄靠。再次運行django服務(wù)器秒咨。

cd /var/www/website
python manage.py runserver 0.0.0.0:8000

在瀏覽器中分別輸入:120.79.210.25:8000 120.79.210.25/blog查看測試結(jié)果


127.79.210.25:8000

120.79.210.25/blog
  • 在來看看后臺有沒有問題
    Ctrl+C退出服務(wù)蝗拿。
python manage.py migrate
django migrate.png

創(chuàng)建管理員賬戶

python manage.py createsuperuser  

再次啟動內(nèi)置服務(wù)器孽糖,瀏覽器輸入120.79.210.25:8000/admin 輸入剛才創(chuàng)建的用戶名密碼休雌,登錄.


admin:8000.png

成功了Ctrl+C退出服務(wù)咖摹。
OK呀伙!現(xiàn)在nginx和Django已經(jīng)安裝好了,需要安裝uwsgi來把他們連接起來些椒,這里掉坑了扶歪。。糙置。云茸。。谤饭。标捺。

5. 安裝uwsgi

5.1 安裝
pip3 install uwsgi

測試uwsgi:

cd /var/www/website
uwsgi --http :8000 --module website.wsgi

在瀏覽器中輸入120.79.210.25/blog 和 120.79.210.25/admin 頁面顯示成功,但是沒有加css載靜態(tài)文件网持。


admin頁面.png
blog的index.html頁面.png
5.2 編輯uwsgi.ini 放在www目錄下
vim /var/www/uwsgi.ini

內(nèi)容為:

[uwsgi]
socket = :8001
processes = 4
threads = 2
master = true
chdir = /var/www/website
module = website.wsgi
home = /var/www/venv
vacuum = true

socket 必須和后面的nginx文件中的設(shè)置一樣宜岛。nchdir是項目目錄,module就是和項目同名的wsgi文件功舀,home是虛擬環(huán)境目錄萍倡。

5.3 編輯nignx文件
vim /etc/nginx/sites-enabled/default

最后是這個樣子,我刪掉了其中的注釋

upstream django{
    server 127.0.0.1:8001;
}
server{
    listen 80;

    charset utf-8;
    server_name 120.79.210.25;
    client_max_body_size 10M;
    
    location / {
        uwsgi_pass django;
        include /etc/nginx/uwsgi_params;
    }

    location /static {
        alias /var/www/website/static/;
    }
}

重新啟動nginx:

 /etc/init.d/nginx restart

啟動uwsgi:

 cd /var/www
 uwsgi --ini uwsgi.ini

在瀏覽器中直接輸入ip地址辟汰,訪問80端口列敲,看看是不是已經(jīng)聯(lián)通了


80端口.png
80端口blog.png
80端口的admin.png

可以看到,可以通過80端口訪問了帖汞,ctrl+c 結(jié)束服務(wù)戴而。

5.4 最后一步,搞定靜態(tài)文件

在根目錄新建static文件夾翩蘸,然后讓Django取收集靜態(tài)文件到這個文件夾所意。

cd /var/www/website
mkdir static

編輯settings.py:

vim /var/www/website/website/settings.py

添加如下代碼:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

保存退出,收集靜態(tài)文件:

cd /var/www/website
python manage.py collectstatic

再次啟動ngnix 和 uwsgi 服務(wù)

/etc/init.d/nginx restart
cd /var/www
uwsgi --ini uwsgi.ini
重啟nginx和uwsgi.png

啟動成功
再次在瀏覽器中瀏覽


admin加載靜態(tài)文件成功.png

為了明顯一點催首,我重新修改了style.css文件扶踊,font-size加大了點,再次用命令收集一下靜態(tài)文件郎任,


index加載成功.png

OK 到此也就算配置通了秧耗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市舶治,隨后出現(xiàn)的幾起案子分井,更是在濱河造成了極大的恐慌,老刑警劉巖霉猛,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尺锚,死亡現(xiàn)場離奇詭異,居然都是意外死亡韩脏,警方通過查閱死者的電腦和手機缩麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杭朱,你說我怎么就攤上這事阅仔。” “怎么了弧械?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵八酒,是天一觀的道長。 經(jīng)常有香客問我刃唐,道長羞迷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任画饥,我火速辦了婚禮衔瓮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抖甘。我一直安慰自己热鞍,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布衔彻。 她就那樣靜靜地躺著薇宠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艰额。 梳的紋絲不亂的頭發(fā)上澄港,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音柄沮,去河邊找鬼回梧。 笑死,一個胖子當著我的面吹牛祖搓,可吹牛的內(nèi)容都是我干的漂辐。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼棕硫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了袒啼?” 一聲冷哼從身側(cè)響起哈扮,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚓再,沒想到半個月后滑肉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡摘仅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年靶庙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娃属。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡六荒,死狀恐怖护姆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掏击,我是刑警寧澤卵皂,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站砚亭,受9級特大地震影響灯变,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捅膘,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一添祸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寻仗,春花似錦刃泌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沐寺,卻和暖如春林艘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背混坞。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工狐援, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人究孕。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓啥酱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厨诸。 傳聞我的和親對象是個殘疾皇子镶殷,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

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