欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Django+Uwsgi+Nginx的生產(chǎn)環(huán)境部署

 更新時(shí)間:2018年06月25日 12:00:58   作者:amchen  
這篇文章主要介紹了Django + Uwsgi + Nginx 的生產(chǎn)環(huán)境部署,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

使用runserver可以使我們的django項(xiàng)目很便捷的在本地運(yùn)行起來(lái),但這只能在局域網(wǎng)內(nèi)訪(fǎng)問(wèn),如果在生產(chǎn)環(huán)境部署django,就要多考慮一些問(wèn)題了。比如靜態(tài)文件處理,安全,效率等等,本篇文章總結(jié)歸納了一下基于uwsgi+Nginx下django項(xiàng)目生產(chǎn)環(huán)境的部署

準(zhǔn)備條件:

1.確保有一個(gè)能夠用runserver正常啟動(dòng)的django項(xiàng)目

2.項(xiàng)目已上傳到linux

3.linux上已部署好python環(huán)境,且已安裝好項(xiàng)目所需的模塊

安裝uwsgi

uwsgi是python的一個(gè)模塊,安裝uwsgi只需簡(jiǎn)單的pip命令就可以了

pip3 install uwsgi

基于uwsgi+django的實(shí)現(xiàn)

1.使用命令啟動(dòng)uwsgi

第一步:進(jìn)入django項(xiàng)目

第二步:命令測(cè)試啟動(dòng)

uwsgi --http 192.168.31.123:8080 --file teacher/wsgi.py --static-map=/static=static

參數(shù)說(shuō)明:

--http 這個(gè)就和runserver一樣指定IP 端口
--file 這個(gè)文件就里有一個(gè)反射,如果你在調(diào)用他的時(shí)候沒(méi)有指定Web Server就使用默認(rèn)的
-- static 做一個(gè)映射,指定靜態(tài)文件

此時(shí),訪(fǎng)問(wèn)http://192.168.2.108:8080/,如圖所示,表示項(xiàng)目啟動(dòng)成功

2.使用uwsgi配置文件啟動(dòng)django項(xiàng)目

第一步:在django項(xiàng)目同級(jí)目錄創(chuàng)建script目錄,用于存放配置腳本等等

第二步:進(jìn)入/script目錄,創(chuàng)建一個(gè)uwsgi.ini文件

編輯uwsgi.ini文件內(nèi)容如下:

# uwsig使用配置文件啟動(dòng)

[uwsgi]

# 項(xiàng)目目錄

chdir=/opt/proj/teacher/

# 指定項(xiàng)目的application

module=teacher.wsgi:application

# 指定sock的文件路徑    

socket=/opt/proj/script/uwsgi.sock

# 進(jìn)程個(gè)數(shù)    

workers=5

pidfile=/opt/proj/script/uwsgi.pid

# 指定IP端口    

http=192.168.2.108:8080

# 指定靜態(tài)文件

static-map=/static=/opt/proj/teacher/static

# 啟動(dòng)uwsgi的用戶(hù)名和用戶(hù)組

uid=root

gid=root

# 啟用主進(jìn)程

master=true

# 自動(dòng)移除unix Socket和pid文件當(dāng)服務(wù)停止的時(shí)候

vacuum=true

# 序列化接受的內(nèi)容,如果可能的話(huà)

thunder-lock=true

# 啟用線(xiàn)程

enable-threads=true

# 設(shè)置自中斷時(shí)間

harakiri=30

# 設(shè)置緩沖

post-buffering=4096

# 設(shè)置日志目錄

daemonize=/opt/proj/script/uwsgi.log

啟動(dòng)項(xiàng)目:

訪(fǎng)問(wèn)192.168.2.108:8080,啟動(dòng)成功

至此,uwsgi+django就完美結(jié)合了,但是,光有uwsgi還不夠,uwsgi處理動(dòng)態(tài)請(qǐng)求能力高,但對(duì)于靜態(tài)請(qǐng)求(如static文件,css,js文件等)處理能力差,此時(shí)就要結(jié)合nginx一起使用

安裝nginx

第一步:配置yum源

vim /etc/yum.repos.d/nginx.repo

文件內(nèi)容如下,wq保存退出

第二步:安裝nginx

yum -y install nginx

測(cè)試是否安裝完成,命令啟動(dòng)nginx

/etc/init.d/nginx start

打開(kāi)瀏覽器,訪(fǎng)問(wèn)192.168.2.108出現(xiàn)如下頁(yè)面即代表nginx安裝完成且可以正常啟動(dòng)

第三步:Django + Uwsgi + Nginx

首先創(chuàng)建配置文件,nginx的默認(rèn)配置目錄為/etc/nginx/conf.d

創(chuàng)建teacher.conf文件

配置內(nèi)容如下:

server { # 這個(gè)server標(biāo)識(shí)我要配置了
listen 80; # 我要監(jiān)聽(tīng)那個(gè)端口
server_name 192.168.2.108 ; # 你訪(fǎng)問(wèn)的路徑前面的url名稱(chēng) 
access_log /var/log/nginx/access.log main; # Nginx日志配置
charset utf-8; # Nginx編碼
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持壓縮的類(lèi)型

error_page 404 /404.html; # 錯(cuò)誤頁(yè)面
error_page 500 502 503 504 /50x.html; # 錯(cuò)誤頁(yè)面

# 指定項(xiàng)目路徑uwsgi
 location / { # 這個(gè)location就和咱們Django的url(r'^admin/', admin.site.urls),
 include uwsgi_params; # 導(dǎo)入一個(gè)Nginx模塊他是用來(lái)和uWSGI進(jìn)行通訊的
uwsgi_connect_timeout 30; # 設(shè)置連接uWSGI超時(shí)時(shí)間
uwsgi_pass unix:/opt/proj/script/uwsgi.sock; # 指定uwsgi的sock文件所有動(dòng)態(tài)請(qǐng)求就會(huì)直接丟給他
}

# 指定靜態(tài)文件路徑
location /static/ {
 alias /opt/proj/teacher/static/;
 index index.html index.htm;
 }

}

最后一步,重啟nginx

/etc/init.d/nginx restart

瀏覽器訪(fǎng)問(wèn)192.168.2.108,出現(xiàn)如下頁(yè)面表示啟動(dòng)成功

nginx相關(guān)命令

# 啟動(dòng)Nginx通過(guò)Nginx訪(fǎng)問(wèn)

  /etc/init.d/nginx start

  /etc/init.d/nginx stop

 

  # 這里有個(gè)命令configtest,Nginx配置是重啟生效的,如果你修改完了,不知道對(duì)  不對(duì)又擔(dān)心影響其他人可以使用它測(cè)試

  /etc/init.d/nginx configtest

 

  # 如果是生產(chǎn)環(huán)境的話(huà)Nginx正在運(yùn)行,就不要直接stop start 或者 restart 直接reload就行了

  # 對(duì)線(xiàn)上影響最低

  /etc/init.d/nginx reload 

至此,Django + Uwsgi + Nginx 的生產(chǎn)環(huán)境部署就完成了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3中對(duì)json格式數(shù)據(jù)的分析處理

    Python3中對(duì)json格式數(shù)據(jù)的分析處理

    這篇文章主要介紹了Python3中對(duì)json格式數(shù)據(jù)的分析處理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Python語(yǔ)言實(shí)現(xiàn)SIFT算法

    Python語(yǔ)言實(shí)現(xiàn)SIFT算法

    SIFT,即尺度不變特征變換,是用于圖像處理領(lǐng)域的一種描述,本文重點(diǎn)給大家介紹Python語(yǔ)言實(shí)現(xiàn)SIFT算法,感興趣的朋友一起看看吧
    2021-11-11
  • 基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    這篇文章主要介紹了基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python中常用檢測(cè)字符串相關(guān)函數(shù)匯總

    python中常用檢測(cè)字符串相關(guān)函數(shù)匯總

    這篇文章主要介紹了python中常用檢測(cè)字符串相關(guān)函數(shù),實(shí)例匯總了Python針對(duì)字符串?dāng)?shù)字、字母、大小寫(xiě)等常用檢測(cè)函數(shù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Pyecharts可視化圖片渲染的方法詳解

    Pyecharts可視化圖片渲染的方法詳解

    使用 pyecharts 渲染成圖片一直是開(kāi)發(fā)者比較關(guān)心的功能,pyecharts提供了selenium、phantomjs和pyppeteer 三種方式。本文將具體介紹一下這三種方式的使用,需要的可以參考一下
    2022-02-02
  • Python實(shí)現(xiàn)仿射密碼的思路詳解

    Python實(shí)現(xiàn)仿射密碼的思路詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)仿射密碼的思路詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python將QQ聊天記錄生成詞云的示例代碼

    Python將QQ聊天記錄生成詞云的示例代碼

    這篇文章主要介紹了Python將QQ聊天記錄生成詞云的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python打包工具PyInstaller的安裝與pycharm配置支持PyInstaller詳細(xì)方法

    Python打包工具PyInstaller的安裝與pycharm配置支持PyInstaller詳細(xì)方法

    這篇文章主要介紹了Python打包工具PyInstaller的安裝與pycharm配置支持PyInstaller詳細(xì)方法,需要的朋友可以參考下
    2020-02-02
  • Python中連接字符串的7種方法小結(jié)

    Python中連接字符串的7種方法小結(jié)

    Python?提供了將一個(gè)或多個(gè)字符串連接在一起的多種方法,本文主要介紹了Python中連接字符串的7種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Python?私有屬性與私有方法

    Python?私有屬性與私有方法

    這篇文章主要介紹了Python?私有屬性與私有方法,私有屬性是指在?Python?的面向?qū)ο箝_(kāi)發(fā)過(guò)程中,對(duì)象的某些屬性只想在對(duì)象的內(nèi)部被使用,但不想在外部被訪(fǎng)問(wèn)到這些屬,下面我們就進(jìn)入文章一起了解更多信息內(nèi)容吧
    2022-03-03

最新評(píng)論