最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程

 更新時間:2016年06月07日 17:34:57   作者:digwtx  
這篇文章主要介紹了在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程,包括安裝supervisor來管理進(jìn)程的用法,整套配下來相當(dāng)實(shí)用,需要的朋友可以參考下

Python基礎(chǔ)環(huán)境搭建
CENTOS 6.X 系列默認(rèn)安裝的 Python 2.6 ,目前開發(fā)中主要是使用 Python 2.7 ,這兩個版本之間還是有不少差異的,程序在 Python 2.6 下經(jīng)常會出問題。

比如: re.sub 函數(shù) ,2.7 支持 flags 參數(shù),而 2.6 卻不支持。

所以,打算安裝 Python 2.7 來運(yùn)行 Flask 應(yīng)用程序,但 2.6 不能刪除,因?yàn)橄到y(tǒng)對它有依賴。

1、安裝 sqlite-devel
因?yàn)?Flask 應(yīng)用程序可能使用能 Sqlite 數(shù)據(jù)庫,所以這個得裝上(之前因?yàn)闆]裝這個,導(dǎo)致 Python 無法導(dǎo)入 sqlite3 庫。
當(dāng)然,也可以從源碼編譯安裝。

yum install sqlite-devel -y

2、安裝 Python 2.7

wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar xf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=/usr/local
make && make install

安裝成功之后,你可以在 /usr/local/bin/python2.7 找到 Python 2.7。

3、安裝 setuptools + pip
這里需要注意,一定要使用 python2.7 來執(zhí)行相關(guān)命令。

# First get the setup script for Setuptools:
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# Then install it for Python 2.7 :
python2.7 ez_setup.py

# Now install pip using the newly installed setuptools:
easy_install-2.7 pip

# With pip installed you can now do things like this:
pip2.7 install [packagename]
pip2.7 install --upgrade [packagename]
pip2.7 uninstall [packagename]

4、使用 virtualenv

# Install virtualenv for Python 2.7 and create a sandbox called my27project:
pip2.7 install virtualenv
virtualenv-2.7 my27project

# Check the system Python interpreter version:
python --version
# This will show Python 2.6.6

# Activate the my27project sandbox and check the version of the default Python interpreter in it:
source my27project/bin/activate
python --version
# This will show Python 2.7.X
deactivate

基本就是這些了,網(wǎng)上很多教程都說要做軟鏈接,但我感覺那樣做或多或少會對系統(tǒng)有一些未知的影響。這個方法能盡量保持系統(tǒng)的完整性,很多自帶 Python 程序其實(shí)在頭部都指定了 #!/usr/bin/python ,所以它們用的其實(shí)是 Python 2.6 ,而不是新安裝的 Python 2.7 。

Nginx+Supervisor+Gunicorn部署Flask應(yīng)用程序

1.安裝supervisor

$ sudo pip install supervisor

創(chuàng)建一個Flask程序
創(chuàng)建虛擬環(huán)境:

$ mkdir /tmp/wwwroot/web1
$ cd /tmp/wwwroot/web1
$ virtualenv deps
$ source deps/bin/activate
$ pip install flask gunicorn

創(chuàng)建一個簡單的Flask程序:

$ cat > myapp.py << EOF
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
  return "hello flask 01"

使用gunicorn執(zhí)行Flask程序:

最簡單的用法:

$ gunicorn -b 127.0.0.1:3721 myapp:app

現(xiàn)在訪問http://127.0.0.1:3721,應(yīng)該可以看到"hello flask 01"。

這里3721端口只是一個演示。

2.配置supervisor
創(chuàng)建配置文件:

$ cd /tmp/wwwroot
$ echo_supervisord_conf > supervisor.conf
$ cat >> supervisor.conf << EOF
[program:myapp]
;user=digwtx
command=/tmp/wwwroot/web1/deps/bin/gunicorn -b 127.0.0.1:3721 myapp:app
directory=/tmp/wwwroot/web1
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1          ; number of processes copies to start (def 1)
stopsignal=QUIT        ; signal used to kill process (default TERM)
redirect_stderr=true     ; redirect proc stderr to stdout (default false)
stdout_logfile=/tmp/myapp.log    ; stdout log path, NONE for none; default AUTO

啟動進(jìn)程:

$ supervisord -c supervisor.conf

管理進(jìn)程:

$ supervisorctl -c supervisor.conf

3.配置nginx:
主要是把請求轉(zhuǎn)交給gunicorn進(jìn)行處理。

server {
  listen 8080;
  #默認(rèn)請求
  location / {
  #請求轉(zhuǎn)向本機(jī)ip:3721
    proxy_pass http://127.0.0.1:3721; # 這里是gunicorn監(jiān)聽的地址
    proxy_redirect off;
    proxy_set_header Host $host:8080; #如果端口不是80要寫上
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

現(xiàn)在重啟nginx,訪問http://127.0.0.1:8080應(yīng)該可以看到"hello flask 01"。

自動啟動:
那么,如果想開機(jī)時自動啟動怎么辦呢?或者說,如果機(jī)器重啟了,那WEB服務(wù)就斷了。

其實(shí)呢,也很簡單,只要在/etc/rc.d/rc.local中加入一句就可以了:

supervisord -c /tmp/wwwroot/supervisor.conf

相關(guān)文章

  • Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    模擬鍵盤操作執(zhí)行自動化任務(wù),我們常用的有pyautowin等自動化操作模塊。今天介紹的這個模塊叫做keyboard,它是純Python原生開發(fā),編譯時完全不需要依賴C語言模塊。一行命令就能完成安裝,非常方便,需要的可以了解一下
    2022-10-10
  • 詳解Python字符串原理與使用的深度總結(jié)

    詳解Python字符串原理與使用的深度總結(jié)

    本文將學(xué)習(xí)字符串?dāng)?shù)據(jù)類型相關(guān)知識,將討論如何聲明字符串?dāng)?shù)據(jù)類型,字符串?dāng)?shù)據(jù)類型與?ASCII?表的關(guān)系,字符串?dāng)?shù)據(jù)類型的屬性,以及一些重要的字符串方法和操作,超級干貨,不容錯過
    2022-05-05
  • Python基于Pytorch的特征圖提取實(shí)例

    Python基于Pytorch的特征圖提取實(shí)例

    在利用深度學(xué)習(xí)進(jìn)行分類時,有時需要對中間的特征圖進(jìn)行提取操作,下面這篇文章主要給大家介紹了關(guān)于Python基于Pytorch的特征圖提取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Python中的__slots__示例詳解

    Python中的__slots__示例詳解

    在python新式類中,可以定義一個變量__slots__,它的作用是阻止在實(shí)例化類時為實(shí)例分配dict,下面這篇文章主要給大家介紹了關(guān)于Python中__slots__的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • Python的os包與os.path模塊的用法詳情

    Python的os包與os.path模塊的用法詳情

    這篇文章主要介紹了Python的os包與os.path模塊,主要介紹os常用方法和os.path?常用方法展開相關(guān)資料,需要的小伙伴可以參考一下,希望對你的工作或?qū)W習(xí)有所幫助
    2022-03-03
  • 關(guān)于python 跨域處理方式詳解

    關(guān)于python 跨域處理方式詳解

    這篇文章主要介紹了關(guān)于python 跨域處理方式詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 用Matlab讀取CSV文件出現(xiàn)不匹配問題及解決

    用Matlab讀取CSV文件出現(xiàn)不匹配問題及解決

    這篇文章主要介紹了用Matlab讀取CSV文件出現(xiàn)不匹配問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python創(chuàng)建一個功能齊全的隨機(jī)驗(yàn)證碼生成器

    Python創(chuàng)建一個功能齊全的隨機(jī)驗(yàn)證碼生成器

    驗(yàn)證碼通過生成一張包含難以識別的文本、數(shù)字或圖像的圖像,要求用戶正確輸入其中的內(nèi)容,用于驗(yàn)證用戶身份,本篇教程將帶領(lǐng)您一步步使用Python創(chuàng)建一個功能齊全的隨機(jī)驗(yàn)證碼生成器,我們將通過導(dǎo)入必要的庫、定義輔助函數(shù)以及編寫主函數(shù)check_code()
    2024-04-04
  • Python Queue模塊詳解

    Python Queue模塊詳解

    這篇文章主要介紹了Python Queue模塊詳解,需要的朋友可以參考下
    2014-11-11
  • python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù)

    python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù)

    這篇文章主要介紹了python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù),可實(shí)現(xiàn)將rgb表示的顏色轉(zhuǎn)換成hex值的功能,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-03-03

最新評論

襄樊市| 澄城县| 平江县| 永兴县| 阳泉市| 迁安市| 清原| 洪江市| 云浮市| 溧水县| 嘉荫县| 新昌县| 广东省| 阳泉市| 美姑县| 邯郸市| 镶黄旗| 新津县| 临夏县| 龙门县| 贡山| 阿尔山市| 报价| 泸西县| 板桥市| 托克托县| 五莲县| 浪卡子县| 克东县| 隆回县| 历史| 天柱县| 东阿县| 陇西县| 望谟县| 江口县| 东山县| 博乐市| 北流市| 曲松县| 高密市|