摘要:最近打算使用搭建一個(gè)簡(jiǎn)單的個(gè)人網(wǎng)站,使用部署,在此記錄下部署過程。使用啟動(dòng)應(yīng)用,執(zhí)行后沒有報(bào)任何異常即可?;蛘撸谶\(yùn)行之前先將當(dāng)前虛擬環(huán)境加入到中,參考資料快速上手使用啟動(dòng)應(yīng)用以及配置
最近打算使用python+flask搭建一個(gè)簡(jiǎn)單的個(gè)人網(wǎng)站,使用nginx+uwsgi部署,在此記錄下部署過程。
環(huán)境
ubuntu12.04, python2.7.3, virtualenv1.7.1.2, uwsgi2.0.8
準(zhǔn)備
安裝virtualenv: 使用virtualenv創(chuàng)建一個(gè)獨(dú)立的python開發(fā)環(huán)境具有很多好處,ubuntu12.04默認(rèn)是沒有安裝的,因此先安裝virtualenv: sudo apt-get install virtualenv。安裝完成后運(yùn)行virtualenv ~/demo在我的個(gè)人目錄下面創(chuàng)建一個(gè)名為demo的虛擬環(huán)境。
安裝uwsgi: 直接使用ubuntu12.04軟件包里的uwsgi版本太低,因此需要去uwsgi官網(wǎng)下載最新的版本安裝,我的方式是按照文檔說明直接使用make命令:
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-lastest
make
運(yùn)行uwsgi --version確認(rèn)是否安裝成功。
開發(fā)
cd 到 demo目錄,使用source bin/active激活當(dāng)前的虛擬環(huán)境,因?yàn)槲覀冃枰褂玫絝lask,因此需要在當(dāng)前環(huán)境中安裝flask:pip install flask。(注意:若未激活當(dāng)前虛擬環(huán)境pip install會(huì)默認(rèn)安裝到全局的python環(huán)境中,導(dǎo)致permission denied錯(cuò)誤) 現(xiàn)在就可以寫一個(gè)最簡(jiǎn)單的flask應(yīng)用了:
from flask import Flask app = Flask(__name__) @app.route("/") def helloworld(): return "hello, world."
部署
現(xiàn)在使用uwsgi和 nginx把helloworld應(yīng)用部署一下。
先配置nginx,在nginx的conf.d目錄下創(chuàng)建一個(gè)helloworld.conf文件,然后做如下配置
server {
????????listen 80;
????????server_name 127.0.0.1;
????????location /helloworld {
????????????????include uwsgi_params;
????????????????uwsgi_pass unix:/tmp/uwsgi.sock;
????????}
}
保存,nginx reload以使上面的配置生效。
使用uwsgi啟動(dòng)helloworld應(yīng)用:uwsgi -s /tmp/uwsgi.sock --chmod-sock=666 -H /home/victor/demo --module helloworld -callable app, 執(zhí)行后沒有報(bào)任何異常即可。
現(xiàn)在在瀏覽器里輸入127.0.0.1/helloworld即可訪問helloworld應(yīng)用,瀏覽器將顯示hello,world.
(注意:由于是在虛擬環(huán)境中開發(fā)的這個(gè)應(yīng)用,因此在使用uswgi啟動(dòng)引發(fā)用時(shí)需要使用-H /path/to/virtualenv設(shè)置使用當(dāng)前虛擬環(huán)境變量,否則我們只在當(dāng)前虛擬環(huán)境中安裝的flask會(huì)無法import進(jìn)來。或者,在運(yùn)行之前先將當(dāng)前虛擬環(huán)境加入到PYTHONPATH中,export PYTHONPATH=$PYTHONPATH:/home/victor/demo/lib/python2.7/site-packages)
參考資料
flask快速上手
使用uwsgi啟動(dòng)flask應(yīng)用以及nginx配置
uwsgi document
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/39099.html
摘要:服務(wù)器上部署項(xiàng)目說白了就是讓你的項(xiàng)目在這臺(tái)服務(wù)器上運(yùn)行并且做到可以在公網(wǎng)上訪問你的項(xiàng)目。可以解決項(xiàng)目與項(xiàng)目之間對(duì)同一個(gè)包的不同版本的依賴問題。有可能會(huì)報(bào)的錯(cuò)是項(xiàng)目相關(guān)模塊的引入路徑不對(duì),修改一下便可。 前一陣自己用flask框架寫了一個(gè)博客程序,寫完之后想部署到服務(wù)器上,因?yàn)槭切“祝宰约篻oogle了好些資料,講的零零碎碎而且有些地方只是告訴你怎么配置,但具體為什么這樣配卻沒有說明...
摘要:服務(wù)器上部署項(xiàng)目說白了就是讓你的項(xiàng)目在這臺(tái)服務(wù)器上運(yùn)行并且做到可以在公網(wǎng)上訪問你的項(xiàng)目??梢越鉀Q項(xiàng)目與項(xiàng)目之間對(duì)同一個(gè)包的不同版本的依賴問題。有可能會(huì)報(bào)的錯(cuò)是項(xiàng)目相關(guān)模塊的引入路徑不對(duì),修改一下便可。 前一陣自己用flask框架寫了一個(gè)博客程序,寫完之后想部署到服務(wù)器上,因?yàn)槭切“祝宰约篻oogle了好些資料,講的零零碎碎而且有些地方只是告訴你怎么配置,但具體為什么這樣配卻沒有說明...
摘要:服務(wù)器上部署項(xiàng)目說白了就是讓你的項(xiàng)目在這臺(tái)服務(wù)器上運(yùn)行并且做到可以在公網(wǎng)上訪問你的項(xiàng)目??梢越鉀Q項(xiàng)目與項(xiàng)目之間對(duì)同一個(gè)包的不同版本的依賴問題。有可能會(huì)報(bào)的錯(cuò)是項(xiàng)目相關(guān)模塊的引入路徑不對(duì),修改一下便可。 前一陣自己用flask框架寫了一個(gè)博客程序,寫完之后想部署到服務(wù)器上,因?yàn)槭切“祝宰约篻oogle了好些資料,講的零零碎碎而且有些地方只是告訴你怎么配置,但具體為什么這樣配卻沒有說明...
摘要:基于網(wǎng),分享項(xiàng)目的組網(wǎng)架構(gòu)和部署。項(xiàng)目組網(wǎng)架構(gòu)架構(gòu)說明流項(xiàng)目訪問分為兩個(gè)流,通過分兩個(gè)端口暴露給外部使用數(shù)據(jù)流用戶訪問網(wǎng)站。通過進(jìn)行配置,使用作為異步隊(duì)列來存儲(chǔ)任務(wù),并將處理結(jié)果存儲(chǔ)在中。 基于Raindrop網(wǎng),分享項(xiàng)目的組網(wǎng)架構(gòu)和部署。 項(xiàng)目組網(wǎng)架構(gòu) showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...
閱讀 1438·2023-04-26 01:03
閱讀 2114·2021-11-23 09:51
閱讀 3468·2021-11-22 15:24
閱讀 2799·2021-09-22 15:18
閱讀 1108·2019-08-30 15:55
閱讀 3727·2019-08-30 15:54
閱讀 2426·2019-08-30 15:53
閱讀 2464·2019-08-30 15:44