【超詳細(xì)】阿里云服務(wù)器超級詳細(xì)配置(FLASK+UWSGI+NGINX)by LY 2020-4-21

?阿里云服務(wù)器超級詳細(xì)配置(FLASK+UWSGI+NGINX)


一準(zhǔn)備工作:

我們先到阿里云官網(wǎng)注冊和登錄以及實名認(rèn)證,然后可以在官網(wǎng)上購買收費的云服務(wù)器或者領(lǐng)取一個月免費的云服務(wù)器。

官網(wǎng):https://www.aliyun.com/

阿里云:https://free.aliyun.com/

我們這次安裝的是Ubuntu? 18.04 64位? 阿里云目前最新版的系統(tǒng)。


輸入root密碼? 記住哦~這個就是登錄服務(wù)器的密碼

服務(wù)器地址,第一個( ̄▽ ̄)"復(fù)制一下~

配置安全組,主要設(shè)置容許你的網(wǎng)頁訪問的端口。。。go on~

端口范圍和授權(quán)對象必須要寫哦,0.0.0.0/0就是對所有人公開~

OK,下面我們進入我們的服務(wù)器,當(dāng)然如果你的不是阿里云的服務(wù)器也可以,你的服務(wù)器裝好系統(tǒng)之后可以從這一步開始:

putty

下載putty,SSH啥的 你自己隨意,我覺得這個順手一點吧。黑色的地方填寫服務(wù)器地址 其他不變。然后OPEN!

二、進入ubunru終端界面并創(chuàng)建虛擬環(huán)境:

?? ?輸入密碼進來之后:

?? ?第一個命令,更新服務(wù)器列表? ?O(∩_∩)O

?? ?1.apt-get update? ? ?

?? ?2.這個mysql需要就裝。?

?? ??? ?如果你用的sqlite,這個可以不裝,以后需要再裝也行,但是還是要說一下:

?? ???apt-get install mysql-server

? ? ? apt-get install libmysqlclient-dev? ? ?

? ? ? 裝完之后可以用命令查看安裝的包和軟件:

? ? ? dpkg -s mysql-server


也可以檢查別的包

?? ?3.如果你安裝了mysql,就順便把redis也安裝一下。

????????redis是什么,后面有說明的,想了解的可以去看看。

?? ??? ?apt-get install redis-server? ? ? redis的安裝(緩存數(shù)據(jù)庫)

?? ?4.? 安裝 virtualenv? (虛擬環(huán)境):

? ? ? ? 如果這里提示要安裝 PIP 就? 安裝一下? pip??

?? ??? ?apt install python-pip

?? ?? ? 再安裝 :

? ???????pip install?virtualenv

?? ??? pip3 install virtualenvwrapper (虛擬環(huán)境管理工具) (如果是python3? 切換下)

? ? ? 至此虛擬環(huán)境就安裝好了 O(∩_∩)O?

? ? ? 恭喜你完成了很多人要爬很多坑的一步。

-----------------------------------------這里應(yīng)該有分割線---------------------------------------------

? ? ? ?接下來我們看下?virtualenvwrapper.sh 的位置,為什么要看呢,因為我們的服務(wù)器怕找不到虛擬環(huán)境所需要的文件,??

? ? ? ? ?使用命令 :which??virtualenvwrapper.sh? ?然后添加以下代碼

?? ??? ?編輯~/.bashrc文件,內(nèi)容如下: (vim~/.bashrc? ?修改文件用? i 命令,改完之后esc退出編輯模式 ,輸入:wq 保存退出

設(shè)置環(huán)境變量

?? ??? ?? ? (每一個用戶在進入home目錄后,其中都會有一個隱藏文件.bashrc ,按ctrl+h可以顯示隱藏文件,該文件保存該用戶角色下的環(huán)境變量,所以直接打開終端時,運行的命令都是從?這 個.bashrc中去尋找)。

在? .bashrc?文件中修改 :

export WORKON_HOME=$HOME/.virtualenvs/?

export PROJECT_HOME=$HOME/workspace/?

exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh


用的3.5版本安裝的這個環(huán)境,系統(tǒng)的2.7版本是沒有的。

“exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3”

就是告訴服務(wù)器設(shè)置在python3的環(huán)境變量下

如果不指定python3的位置:

which python3

然后修改“ = ” 號后面的。

退出VIM后千萬一定要加上這條命令,馬上執(zhí)行:

source ~/.bashrc

后面如果報錯,那就是虛擬環(huán)境環(huán)境出問題了:

可以? ?whichvirtualenvwrapper.sh?

然后修改下:

“source /usr/local/bin/virtualenvwrapper.sh”的路徑。

理論上跟我的一步一步走 是不會錯的。這里要小伙伴們好好理解一下。

OK 虛擬環(huán)境已經(jīng)配置好了,

現(xiàn)在便是創(chuàng)建虛擬環(huán)境。

我們創(chuàng)建一個py3_flask的虛擬環(huán)境:

mkvirtualenv -p python3 py3_flask

查看剛剛創(chuàng)建的虛擬環(huán)境:

workon

進入虛擬環(huán)境:

workon py3_flask

這個時候 會有變化哦,是不是root前面已經(jīng)有(py3_flask)了,代表我們已經(jīng)進入這個虛擬環(huán)境了

(py3_flask) root@*******:

使用 pip list就可以查看當(dāng)前虛擬環(huán)境安裝了哪些包了。

附上虛擬環(huán)境常用命令:

mkvirtualenv env1:創(chuàng)建運行環(huán)境 env1

workon env1: 工作在 env1 環(huán)境 或 從其它環(huán)境切換到 env1 環(huán)境

deactivate: 退出終端環(huán)境

其它的:

rmvirtualenv ENV:刪除運行環(huán)境ENV

mkproject mic:創(chuàng)建mic項目和運行環(huán)境mic

mktmpenv:創(chuàng)建臨時運行環(huán)境

lsvirtualenv: 列出可用的運行環(huán)境

lssitepackages: 列出當(dāng)前環(huán)境安裝了的包

創(chuàng)建的環(huán)境是獨立的,互不干擾,無需sudo權(quán)限即可使用 pip 來進行包的管理。

三、安裝uwsgi:

升級下我們的 pip? ?(如果提示 PIP 需要升級? 可以這樣:pip3 install --upgrade pip??升級PIP)

進入到虛擬環(huán)境安裝:uwsgi

workon?py3_flask??進入:

uwsgi 的安裝:

?pip3 uwsgi

如果覺得慢可以選擇安裝源,比如這樣:

pip3 install -i?https://pypi.douban.com/simple?uwsgi

使用的 豆瓣的安裝源? 速度會快很多哦。

OK,安裝好了 uwsgi 那么下一步就要安裝 FLASK。

四、安裝FLASK

一樣的安裝方法:

pip3? install? flask??

OK下面 我們用Flask 來測試下我們的網(wǎng)頁:

用? vim 工具 修改下 app.py的一些小參數(shù)

如果你用 pycharm的話,應(yīng)該指定創(chuàng)建Flask后會有一個 自動生成的app.py

我們就來測試它,復(fù)制那段代碼,用vim創(chuàng)建一個test.py的文件。

(不測試,就可以跳過這段,完全不影響)

最后的app()修改如下:

app(host='0.0.0.0',port=5000 , debug='True')


是不是很熟悉

然后保存退出? vim ,好了第一次運行我們的網(wǎng)站:

python3? app.py

瀏覽器打開 輸入:

你的網(wǎng)址:5000

不要忘記加端口哦。

是不是看到網(wǎng)頁了。

五、安裝? nginx:

nginx的安裝:

sudo apt-get install nginx

下載ngnix? 也是在虛擬環(huán)境。

很快就安裝好了。

如果出問題了,?@!

那好吧,升級下? sudo apt-get updata

在安裝就可以了。

安裝好了之后就是最重要的配置了。

六、配置uwsgi和nginx:

如果需要拷入你的項目文件到服務(wù)器:

一般推薦使用工具,比如【winscp】,把項目文件放好,一般放在HOME目錄。

說一下配置文件的位置:

nginx的在etc文件夾下的nginx文件夾里:

uwsgi的 需要自己創(chuàng)建ini文件 放在虛擬目錄就可以了,位置隨便。

運行ini文件的時候要在創(chuàng)建的目錄。

(復(fù)制下來后,注意去掉用 # 注釋的部分)

---------------------------------------------------------------------------------------------

[uwsgi]

chmod-socket = 666?? ??? ??? ?? ?

socket? =127.0.0.1:5000?? ?? ? #和nginx配置的端口號

#http=0.0.0.0:5000?? ??? ?? ? #單獨啟動uwsgi時使用

chdir=/home/51job/51_flask? ? #項目路徑

wsgi-file=app.py?? ??? ??? ?? ?#項目啟動文件

home = /root/.virtualenvs/py3_flask/? ?#這個是項目的虛擬路徑

callable=app?? ??? ??? ?? ??

processes=4?? ??? ??? ??? ?

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

-------------------------------------------

如果只想測試下? uwsgi? 是否成功,

那么改成這樣:

[uwsgi]

#chmod-socket = 666

#socket? =127.0.0.1:5000

http=0.0.0.0:5000

chdir=/home/51job/51_flask?? ??? ?? ? #你的項目目錄

wsgi-file=app.py?? ??? ??? ??? ??? ?? ?#你的啟動文件?

home = /root/.virtualenvs/py3_flask/? ? #這就是你的虛擬目錄,還記的開始的時候說的怎么得到虛擬目錄嗎?

callable=app

processes=4

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

就可以了在uwsgi上訪問了,注意瀏覽器的端口:5000哦

OK,下面就是ngnix的配置,so? easy?。?!

哎 說簡單 其實我可是趴了倆天的坑啊 -,-

events {

????????worker_connections 768;

????????# multi_accept on;

}

http {

server {

????????????????????????????????listen????????? 80;?? ??? ??? ?? ? #監(jiān)聽端口,就是網(wǎng)站端口啦

????????????????????????????????server_name???? XXX.XXX.XXX.XXX? ? #你的服務(wù)器地址,也可以是你的域名

????????????????????????????????charset???????? utf-8;

????????????????????????????????location /static {

????????????????????????????????????????????????????????alias?? /home/51job/51_flask/static;

?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?? ? #這個是你項目的JS文件地址,是不是很熟悉static

????????????????????????????????}

????????????????????????????????#location /upload {

????????????????????????????????????? #alias?? /var/www/datavis/taihesite/upload;

????????????????????????????????#}

????????????????????????????????location / {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?uwsgi_pass?? 127.0.0.1:5000;#這個是與你對接的uwsg的地址端口

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? include????? /etc/nginx/uwsgi_params;

????????????????????????????????}

}

????????##

????????# Basic Settings

????????##

復(fù)制下面這段代碼到相應(yīng)位置就可以了,注意覆蓋哦,需要修改的地方 我都做了標(biāo)記了,如果復(fù)制下來 請把注釋去掉哦



七、啟動我們的 服務(wù)器:

uwsgi uwsgi.ini

service nginx start

這樣就啟動了。。。

順便說下停止服務(wù)器的方法:

sudo pkill -f uwsgi -9? 停止uwsgi? 最有效的辦法??都不需要輸入pid 去 KILL

service nginx stop?? ???停止 nginx

那就一其說一下吧:

service nginx restart?? ?重啟Nginx服務(wù)

service nginx status?? ?Nginx服務(wù)的狀態(tài)

service nginx reload在Nginx服務(wù)啟動的狀態(tài)下,重新加載nginx.conf這個配置文件

sudo nginx -t???? ? ?檢查nginx 配置是否正確

至此終于完成了所有的配置 ,你的服務(wù)器應(yīng)該已經(jīng)可以訪問了,假如,還不能啟動,那肯定都是小問題,無非就是版本不匹配啥的,

如果出問題不妨試一下:

?sudo atp-get update

如果喜歡的小伙伴可以轉(zhuǎn)載一下:)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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