1.1 Go 安裝
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元陽(yáng)春做網(wǎng)站,已為上家服務(wù),為陽(yáng)春各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
Go的三種安裝方式
Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常拆散激見的安裝方式:
Go源碼安裝:這是一種標(biāo)準(zhǔn)的軟件安裝方式。對(duì)于經(jīng)常使用Unix類系統(tǒng)的用戶,尤其對(duì)于開發(fā)者來(lái)說(shuō),從源碼安裝可以自己定制。
Go標(biāo)準(zhǔn)包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統(tǒng)。這種方式適合快速安裝,可根據(jù)自己的系統(tǒng)位數(shù)下載好相應(yīng)的安裝包,一路next就可以輕松安裝了。**推薦這種方式**
第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應(yīng)系統(tǒng)的用戶。
最后,如果你想在同一個(gè)系統(tǒng)中安裝多個(gè)版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。
Go源碼安裝
在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。
在Mac系統(tǒng)中,只要你安裝了Xcode,就已經(jīng)包含了相應(yīng)的編譯工具。
在類Unix系統(tǒng)中,需要安裝gcc等工具。例如Ubuntu系統(tǒng)可通過在終端中執(zhí)行sudo apt-get install gcc
libc6-dev來(lái)安裝編譯工具。
在Windows系統(tǒng)中,你需要安裝MinGW,然后通過MinGW安裝gcc,并設(shè)置相應(yīng)的環(huán)境變量。
你可以直接去官網(wǎng)下載源碼,找相應(yīng)的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:
cd go/src
./all.bash
運(yùn)行all.bash后出現(xiàn)"ALL TESTS PASSED"字樣時(shí)才算安裝成功。
上面是Unix風(fēng)格的命令,Windows下的安裝方式類似,只不過是運(yùn)行all.bat,調(diào)用的編譯器是MinGW的gcc。
如果是Mac或者Unix用戶需要設(shè)置幾個(gè)環(huán)境變量,如果想重啟之后也能生效的話把下面的命令寫到.bashrc或者.zshrc里面,
export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin
如果你是寫入文件的,記得執(zhí)行bash .bashrc或者bash
.zshrc使得設(shè)置立馬生效。
如果是window系統(tǒng),就需要設(shè)置環(huán)境變量,在path里面增加相應(yīng)的go所在的目錄,設(shè)置gopath變量。
當(dāng)你設(shè)置完畢之后在命令行里面輸入go,看到如下圖片即說(shuō)明你已經(jīng)安裝成功
圖1.1 源碼安裝之后執(zhí)行Go命令的圖
如果出現(xiàn)Go的Usage信息,那么說(shuō)明Go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。
關(guān)于上面的GOPATH將在下面小節(jié)詳細(xì)講解
Go標(biāo)準(zhǔn)包安裝
Go提供了每個(gè)平臺(tái)打好包的一鍵安裝,這些包默認(rèn)會(huì)安裝到如下目錄:/usr/local/go
(Windows系統(tǒng):c:\Go),當(dāng)然你可以改變他們的安裝位置,但是改變之后你必須在你的掘雀環(huán)境變量中設(shè)置如下信息:
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
上面這些命令對(duì)于Mac和Unix用戶來(lái)說(shuō)最好是寫入.bashrc或者.zshrc文件,對(duì)于windows用戶來(lái)說(shuō)當(dāng)然是寫入環(huán)境變量。
如何判斷自己的操作系統(tǒng)是32位還是64位?
我們接下來(lái)的Go安裝需要判斷操作系統(tǒng)的位旅襪數(shù),所以這小節(jié)我們先確定自己的系統(tǒng)類型。
Windows系統(tǒng)用戶請(qǐng)按Win+R運(yùn)行cmd,輸入systeminfo后回車,稍等片刻,會(huì)出現(xiàn)一些系統(tǒng)信息。在“系統(tǒng)類型”一行中,若顯示“x64-based
PC”,即為64位系統(tǒng);若顯示“X86-based PC”,則為32位系統(tǒng)。
Mac系統(tǒng)用戶建議直接使用64位的,因?yàn)镚o所支持的Mac OS X版本已經(jīng)不支持純32位處理器了。
Linux系統(tǒng)用戶可通過在Terminal中執(zhí)行命令arch(即uname
-m)來(lái)查看系統(tǒng)信息:
64位系統(tǒng)顯示
x86_64
32位系統(tǒng)顯示
i386
Mac 安裝
訪問下載地址,32位系統(tǒng)下載go1.4.2.darwin-386-osx10.8.pkg,64位系統(tǒng)下載go1.4.2.darwin-amd64-osx10.8.pkg,雙擊下載文件,一路默認(rèn)安裝點(diǎn)擊下一步,這個(gè)時(shí)候go已經(jīng)安裝到你的系統(tǒng)中,默認(rèn)已經(jīng)在PATH中增加了相應(yīng)的~/go/bin,這個(gè)時(shí)候打開終端,輸入go
看到類似上面源碼安裝成功的圖片說(shuō)明已經(jīng)安裝成功
如果出現(xiàn)go的Usage信息,那么說(shuō)明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Linux 安裝
訪問下載地址,32位系統(tǒng)下載go1.4.2.linux-386.tar.gz,64位系統(tǒng)下載go1.4.2.linux-amd64.tar.gz,
假定你想要安裝Go的目錄為 $GO_INSTALL_DIR,后面替換為相應(yīng)的目錄路徑。
解壓縮tar.gz包到安裝目錄下:tar zxvf go1.4.2.linux-amd64.tar.gz -C
$GO_INSTALL_DIR。
設(shè)置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin
然后執(zhí)行g(shù)o
圖1.2 Linux系統(tǒng)下安裝成功之后執(zhí)行g(shù)o顯示的信息
如果出現(xiàn)go的Usage信息,那么說(shuō)明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Windows 安裝
訪問Google Code 下載頁(yè),32
位請(qǐng)選擇名稱中包含 windows-386 的 msi 安裝包,64 位請(qǐng)選擇名稱中包含 windows-amd64 的。下載好后運(yùn)行,不要修改默認(rèn)安裝目錄
C:\Go\,若安裝到其他位置會(huì)導(dǎo)致不能執(zhí)行自己所編寫的 Go 代碼。安裝完成后默認(rèn)會(huì)在環(huán)境變量 Path 后添加 Go 安裝目錄下的 bin 目錄
C:\Go\bin\,并添加環(huán)境變量 GOROOT,值為 Go 安裝根目錄 C:\Go\ 。
驗(yàn)證是否安裝成功
在運(yùn)行中輸入 cmd 打開命令行工具,在提示符下輸入 go,檢查是否能看到 Usage 信息。輸入
cd %GOROOT%,看是否能進(jìn)入 Go 安裝目錄。若都成功,說(shuō)明安裝成功。
不能的話請(qǐng)檢查上述環(huán)境變量 Path 和 GOROOT 的值。若不存在請(qǐng)卸載后重新安裝,存在請(qǐng)重啟計(jì)算機(jī)后重試以上步驟。
第三方工具安裝
GVM
gvm是第三方開發(fā)的Go多版本管理工具,類似ruby里面的rvm工具。使用起來(lái)相當(dāng)?shù)姆奖?,安裝gvm使用如下命令:
bash (curl -s -S -L )
安裝完成后我們就可以安裝go了:
gvm install go1.4.2
gvm use go1.4.2
也可以使用下面的命令,省去每次調(diào)用gvm use的麻煩: gvm use go1.4.2 --default
執(zhí)行完上面的命令之后GOPATH、GOROOT等環(huán)境變量會(huì)自動(dòng)設(shè)置好,這樣就可以直接使用了。
apt-get
Ubuntu是目前使用最多的Linux桌面系統(tǒng),使用apt-get命令來(lái)管理軟件包,我們可以通過下面的命令來(lái)安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable git-core mercurial
homebrew
homebrew是Mac系統(tǒng)下面目前使用最多的管理軟件的工具,目前已支持Go,可以通過命令直接安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
brew update brew upgrade
brew install go
brew install git
brew install mercurial
首先保證 Git 和 Go 已經(jīng)安裝成功。可以參考:
其次配置好 GOPATH 環(huán)境變量。
Go Micro 是基于 Go 語(yǔ)言用于開發(fā)的微服務(wù)的 RPC 框架,它是 Micro 的基礎(chǔ),執(zhí)行下面當(dāng)命令安裝:
核心培歷是 gogetgithub點(diǎn)抗 /micro/go-micro,但一些包需預(yù)陸中顫先安裝好(由于網(wǎng)絡(luò)或映射原因)。
Protocol Buffers (a.k.a., protobuf) 是 Google 的數(shù)據(jù)交換格式。 在 下載安裝源碼,編譯安裝。本文選擇的 cpp 的版本:
還需要安裝 Go 對(duì) Protobuf 的支持,和 Protobuf 代碼生成器:
Micro 用于提供構(gòu)建微服務(wù)的關(guān)鍵元素集合。
時(shí)間會(huì)比較久。
至此一個(gè)基本的 Go Micro 環(huán)境就安裝完畢。
官方網(wǎng)站給了一個(gè)測(cè)試用例,我們先體驗(yàn)一下:
先安裝官方測(cè)試案例 srv:
安裝完成后,會(huì)在 $GOPATH/bin 下生成 srv 執(zhí)行文件,啟早敗動(dòng)他。本文已經(jīng)將 $GOPATH/bin 設(shè)置到環(huán)境變量 path 中。
通過命令查看當(dāng)前運(yùn)行的微服務(wù)實(shí)例:
調(diào)用微服務(wù):
得到以上結(jié)果,表示 Go Micro 的相關(guān)產(chǎn)品安裝完畢!
如何部署Golang應(yīng)用
安裝supervisord
# 通過載入程式 ez_setup.py 來(lái)安裝。這個(gè)載入程式會(huì)聯(lián)網(wǎng)下載最新版本setuptools來(lái)安裝,同時(shí)也可以更新本地的setuptools。
wget :peak.telemunity./dist/ez_setup.py
sudo python ez_setup.py
# 更新setuptools:
sudo python ez_setup.py -U setuptools
# 安裝supervisor
easy_install supervisor
# 生成配置檔案
echo_supervisord_conf /etc/supervisord.conf
# 編輯配置檔案
vim /etc/supervisord.conf
# 進(jìn)入vim后找到最后兩行,開簡(jiǎn)豎頃啟注釋(取消前面的分號(hào)),
# [include]
# files = supervisor.d/*.ini
# 將所有的supervisor配置都放到 /etc/supervisor.d目錄
mkdir /etc/supervisor.d
建立 supervisor 對(duì)應(yīng)程式的配置檔案
其中的一些路徑需要換成自己對(duì)應(yīng)的,這里將 zankbo 這個(gè)web 應(yīng)用放在了對(duì)應(yīng)的使用者目錄下
通過在生產(chǎn)伺服器上設(shè)定environment可以在程式里判斷是線上還是開發(fā)模式,如 zankbo 的 debug判斷
當(dāng)然也可已在啟動(dòng)命令處加入引數(shù),如 mand = /home/zankbo/gopath/src/zankbo/zankbo -d 來(lái)關(guān)閉Debug模式。
if os.Getenv("APP_NAME") == "ZANKBO_PRODUCT" {
beego.RunMode = "prod"
}
vim /etc/supervisor.d/zankbo.ini
# 寫入
[program:zankbo]
directory = /home/zankbo/gopath/src/zankbo
environment=APP_NAME="ZANKBO_PRODUCT"
mand = /home/zankbo/gopath/src/zankbo/zankbo
autostart = true
startsecs = 5
user = zankbo
redirect_stderr = true
stdout_logfile = /home/zankbo/log/zankbo.log
建立對(duì)應(yīng)的使用者
useradd zankbo
# 將使用者加入到zankbo使用者組,Nginx以使用者執(zhí)行
usermod -a -G zankbo
# 更改使用者家目錄使用者組的許可權(quán),使Nginx可以訪問
chmod g+rx /home/zankbo
部署Go環(huán)境
其中的目錄為,go:Go安裝目錄 gopath:Go工作目錄,下面有src、pkg、bin三個(gè)目錄 log:日志資料夾
[zankbo@MyCloudServer ~]$ pwd
/home/zankbo
[zankbo@MyCloudServer ~]$ vim .bashrc
# 設(shè)定Go環(huán)境變數(shù),在.bashrc檔案末尾寫下如下內(nèi)容
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bi
# 切換到攔陸使用者家目錄
[root@MyCloudServer ~]# su - zankbo
[zankbo@MyCloudServer ~]$ ls
go gopath log
將專案程式碼放到gopath/src下面,如我的播客專案:
[zankbo@MyCloudServer ~]$ tree -L 2 gopath/src/
gopath/src/
├── github.
│ ├── astaxie
│ ├── beego
│纖納 ├── go-sql-driver
│ ├── howeyc
│ ├── jacobsa
│ ├── *** artystreets
│ └── wendal
└── zankbo
├── admin
├── blog
├── build_pkg.sh
├── mon
├── conf
├── controllers
├── dbstruct.mwb
├── main.go
├── models
├── static
├── views
└── zankbo
匯入專案sql檔案到資料庫(kù)
在專案資料夾執(zhí)行build
[zankbo@MyCloudServer zankbo]$ pwd
/home/zankbo/gopath/src/zankbo
[zankbo@MyCloudServer zankbo]$ go build
會(huì)在專案下生成與包名對(duì)應(yīng)的可執(zhí)行檔案,這里為:zankbo,build的時(shí)候可能會(huì)遇到錯(cuò)誤,比如mysql的密碼之類的,可根據(jù)提示排錯(cuò)。
通過supervisor 來(lái)啟動(dòng)服務(wù)
# supervisorctl start zankbo
配置Nginx
server {
listen 80;
server_name zankbo. zankbo.;
root /home/zankbo/gopath/src/zankbo;
error_log logs/zankbo..error.log warn ;
location /static/ {
root /home/zankbo/gopath/src/zankbo;
location ~ .*\.(js|css)$ {
aess_log off;
expires 1d;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
gzip off;
aess_log off;
expires 3d;
}
}
location / {
proxy_pass :127.0.0.1:8080;
}
}
如何部署thinkphp 應(yīng)用
1、首先在官方網(wǎng)站下載ThinkPHP最新版本。
2、下載后的壓縮檔案解壓到WEB目錄(或者任何目錄都可以),框架的目錄結(jié)構(gòu)為:
├─ThinkPHP.php 框架入口檔案
├─Common 框架公共檔案
├─Conf 框架配置檔案
├─Extend 框架擴(kuò)充套件目錄
├─Lang 核心語(yǔ)言包目錄
├─Lib 核心類庫(kù)目錄
│ ├─Behavior 核心行為類庫(kù)
│ ├─Core 核心基類庫(kù)
│ ├─Driver 內(nèi)建驅(qū)動(dòng)
│ │ ├─Cache 內(nèi)建快取驅(qū)動(dòng)
│ │ ├─Db 內(nèi)建資料庫(kù)驅(qū)動(dòng)
│ │ ├─TagLib 內(nèi)建標(biāo)簽驅(qū)動(dòng)
│ │ └─Template 內(nèi)建模板引擎驅(qū)動(dòng)
│ └─Template 內(nèi)建模板引擎
└─Tpl 系統(tǒng)模板目錄
注意,框架的公共入口檔案ThinkPHP.php是不能直接執(zhí)行的,該檔案只能在專案入口檔案中呼叫才能正常執(zhí)行,這是很多新手很容易犯的一個(gè)錯(cuò)誤。
3、接下來(lái)先在WEB根目錄下面建立一個(gè)app子目錄(這個(gè)就是app就是專案名),然后在該目錄下面建立一個(gè)index.php檔案,新增一行簡(jiǎn)單的程式碼:
require '/ThinkPHP框架所在目錄/ThinkPHP.php';
這行程式碼的作用就是載入ThinkPHP框架的入口檔案ThinkPHP.php,這是所有基于ThinkPHP開發(fā)應(yīng)用的第一步。然后,在瀏覽器中訪問這個(gè)入口檔案。
如何部署應(yīng)用到was上
websphere的預(yù)設(shè)使用記憶體應(yīng)該是256的 你的38的war包部署 不應(yīng)該出現(xiàn)記憶體崩掉的問題呀。
部署系統(tǒng)也很簡(jiǎn)單么,就是打成war包,記得打war包得時(shí)候要檢查web.xml的格式 websphere很在意這個(gè)東東的。
然后一步一步的部署就可以了。was慢 但是不會(huì)你那么慢得。可以貼error出來(lái)看看
如何部署python3 的應(yīng)用
mod_python,這是apache內(nèi)建的模組,很嚴(yán)重的依賴于mod_python編譯使用的python版本,和apache配套使用,不推薦
cgi,這個(gè)太old,不推薦,而且nginx不支援cgi方式,只能用ligd或者apache
fastcgi ,這個(gè)是目前流行最廣的做法,通過flup模組來(lái)支援的,在nginx里對(duì)應(yīng)的配置指令是 fastcgi_pass
spawn-fcgi,這個(gè)是fastcgi多程序管理程式,ligd安裝包附帶的,和
flup效果一樣,區(qū)別是flup是
python程式碼級(jí)引入,spawn-fcgi是外部程式。spawn-fcgi用途很廣,可以支援任意語(yǔ)言開發(fā)的代
碼,php,python,perl,只要你程式碼實(shí)現(xiàn)了fastcgi介面,它都可以幫你管理你的程序
scgi,全名是Simple Common Gateway Interface,也是cgi的替代版本,scgi協(xié)議很簡(jiǎn)單,我覺得和fastcgi差不多,只是沒有怎么推廣開來(lái),nginx對(duì)應(yīng)的配置指令是scgi_pass,你想用就用,flup也支援。
,nginx使用proxy_pass轉(zhuǎn)發(fā),這個(gè)要求后端appplication必須內(nèi)建一個(gè)能處理高并發(fā)的 server,在python的web框架當(dāng)中,只能選擇tornado.
python程式設(shè)計(jì)師喜歡發(fā)明輪子,tornado除了是一個(gè)web framework之外,它還可以單獨(dú)提供高效能
server,所以,如果你采用其他python框架寫程式碼,比如說(shuō)bottle,也一樣可以通過import
tornado 來(lái)啟動(dòng)一個(gè)高效能的
server,同樣的可以采用協(xié)議和nginx一起來(lái)部署。擴(kuò)充套件開來(lái),python包里面能處理高并發(fā)的
server還有很多,比如說(shuō)gevent,也可以被其他框架引用來(lái)支援方式部署。
現(xiàn)實(shí)當(dāng)中,用java來(lái)做web程式,通常就用和nginx配合,應(yīng)用伺服器選擇tomcat或者jetty
uwsgi,包括4部分組成,
nginx從0.8.4開始內(nèi)建支援uwsgi協(xié)議,uwsgi協(xié)議非常簡(jiǎn)單,一個(gè)4個(gè)位元組header+一個(gè)body,body可以是很多協(xié)議的
包,比如說(shuō),cgi等(通過header里面欄位標(biāo)示),我曾經(jīng)做個(gè)一個(gè)小規(guī)模的效能對(duì)比測(cè)試,結(jié)果表明,uwsgi和fastcgi相比,效能
沒有太明顯的優(yōu)勢(shì),也可能是資料集較小的原因
uwsgi的特點(diǎn)在于自帶的程序控制程式.它是用c語(yǔ)言編寫,使用natvie函式,其實(shí)和spawn-fcgi/php-fpm類似。所以u(píng)wsgi可以支援多種應(yīng)用框架,包括(python,lua,ruby,erlang,go)等等
uwsgi協(xié)議
web server內(nèi)建支援協(xié)議模組
application伺服器協(xié)議支援模組
程序控制程式
Gunicorn,和uwsgi類似的工具,從rails的部署工具(Unicorn)移植過來(lái)的。但是它使用的協(xié)議是 WSGI,全稱是Python Web Server Gateway Interface ,這是python2.5時(shí)定義的官方標(biāo)準(zhǔn)(PEP 333 ),根紅苗正,而且部署比較簡(jiǎn)單,:gunicorn./ 上有詳細(xì)教程
mod_wsgi,apache的一個(gè)module,也是支援WSGI協(xié)議,:code.google./p/modwsgi/
如何部署簡(jiǎn)單python + flask應(yīng)用
python是一款應(yīng)用非常廣泛的指令碼程式語(yǔ)言,谷歌公司的網(wǎng)頁(yè)就是用python編寫。python在生物資訊、統(tǒng)計(jì)、網(wǎng)頁(yè)制作、計(jì)算等多個(gè)領(lǐng)域都體現(xiàn)出了強(qiáng)大的功能。python和其他指令碼語(yǔ)言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。
所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系統(tǒng)環(huán)境:
Ubuntu 14.04LTS
我們先寫一個(gè)最基本的flask應(yīng)用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
執(zhí)行這個(gè)py檔案,開啟瀏覽器訪問127.0.0.1:5000就能看到顯示Hello World的頁(yè)面 .
如果讓這個(gè)flask引用監(jiān)聽來(lái)自公網(wǎng)ip的請(qǐng)求,理論上你跑此程式的機(jī)器就相當(dāng)于一個(gè)伺服器了,然而這個(gè)伺服器并不完美,所以我們需要nginx和gunicorn來(lái)增加它的功能,讓它真刀真槍上生產(chǎn)環(huán)境的時(shí)候能按要求執(zhí)行。
flask自帶的WSGI框架效能很差勁,只能適用于開發(fā)環(huán)境除錯(cuò)使用。我們用專業(yè)一點(diǎn)的gunicorn(還有很多其他優(yōu)秀的框架)替代flask自帶的WSGI框架。
配置完后,通過命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘啟動(dòng)應(yīng)用。開啟瀏覽器訪問127.0.0.1:5000,同樣能夠得到返回頁(yè)面
然而gunicorn也僅僅是一個(gè)python的WSGI框架而已,要讓它真正處理來(lái)自網(wǎng)際網(wǎng)路的各類訪問功能還是有點(diǎn)欠缺,這時(shí)候就需要用到大名鼎鼎的nginx 伺服器來(lái)替gunicorn遮風(fēng)擋雨了。
Ubuntu下安裝nginx可以用命令
sudo apt-get install nginx
安裝后需要進(jìn)行下配置:
cd /etc/nginx/sites-available
sudo vi test (test為配置名稱,可以根據(jù)自己專案進(jìn)行命名)
test檔案的配置為:
server {
listen 80; # 監(jiān)聽80埠
location / {
proxy_pass :127.0.0.1:5000; # 代理本機(jī)127.0.0.1:5000的服務(wù)
}
location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 負(fù)載均衡
}
}
cd ..
cd sites-enable
sudo ln -s ../sites-available/lwhile . (建立軟連結(jié),別漏掉最后的.)
sudo service nginx reload
sudo service nginx restart
這樣nginx的基本配置檔案就寫好了 接下來(lái)我們配置程序管理工具supervisor supervisor可以在后面啟動(dòng)你的python程序,這樣很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test為檔名)
[program:test]
mand = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sudo supervisorctl
4.reload
5.start test
如果一切正常,做完這所有步驟之后,現(xiàn)在公網(wǎng)的ip訪問你的主機(jī),就可以開啟你的flask應(yīng)用了
python是一款應(yīng)用非常廣泛的指令碼程式語(yǔ)言,谷歌公司的網(wǎng)頁(yè)就是用python編寫。python在生物資訊、統(tǒng)計(jì)、網(wǎng)頁(yè)制作、計(jì)算等多個(gè)領(lǐng)域都體現(xiàn)出了強(qiáng)大的功能。python和其他指令碼語(yǔ)言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。工具/原料
python;CMD命令列;windows作業(yè)系統(tǒng)
方法/步驟
1、首先下載安裝python,建議安裝2.7版本以上,3.0版本以下,由于3.0版本以上不向下相容,體驗(yàn)較差。
2、開啟文字編輯器,推薦editplus,notepad等,將檔案儲(chǔ)存成 .py格式,editplus和notepad支援識(shí)別python語(yǔ)法。
指令碼第一行一定要寫上 #!usr/bin/python
表示該指令碼檔案是可執(zhí)行python指令碼
如果python目錄不在usr/bin目錄下,則替換成當(dāng)前python執(zhí)行程式的目錄。
3、編寫完指令碼之后注意除錯(cuò)、可以直接用editplus除錯(cuò)。除錯(cuò)方法可自行百度。指令碼寫完之后,開啟CMD命令列,前提是python 已經(jīng)被加入到環(huán)境變數(shù)中,如果沒有加入到環(huán)境變數(shù),請(qǐng)百度
4、在CMD命令列中,輸入 “python” + “空格”,即 ”python “;將已經(jīng)寫好的指令碼檔案拖拽到當(dāng)前游標(biāo)位置,然后敲回車執(zhí)行即可。