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

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

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

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

準(zhǔn)備條件:

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

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

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

安裝uwsgi

uwsgi是python的一個模塊,安裝uwsgi只需簡單的pip命令就可以了

pip3 install uwsgi

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

1.使用命令啟動uwsgi

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

第二步:命令測試啟動

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

參數(shù)說明:

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

此時,訪問http://192.168.2.108:8080/,如圖所示,表示項(xiàng)目啟動成功

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

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

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

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

# uwsig使用配置文件啟動

[uwsgi]

# 項(xiàng)目目錄

chdir=/opt/proj/teacher/

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

module=teacher.wsgi:application

# 指定sock的文件路徑    

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

# 進(jìn)程個數(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

# 啟動uwsgi的用戶名和用戶組

uid=root

gid=root

# 啟用主進(jìn)程

master=true

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

vacuum=true

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

thunder-lock=true

# 啟用線程

enable-threads=true

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

harakiri=30

# 設(shè)置緩沖

post-buffering=4096

# 設(shè)置日志目錄

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

啟動項(xiàng)目:

訪問192.168.2.108:8080,啟動成功

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

安裝nginx

第一步:配置yum源

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

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

第二步:安裝nginx

yum -y install nginx

測試是否安裝完成,命令啟動nginx

/etc/init.d/nginx start

打開瀏覽器,訪問192.168.2.108出現(xiàn)如下頁面即代表nginx安裝完成且可以正常啟動

第三步:Django + Uwsgi + Nginx

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

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

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

server { # 這個server標(biāo)識我要配置了
listen 80; # 我要監(jiān)聽那個端口
server_name 192.168.2.108 ; # 你訪問的路徑前面的url名稱 
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; # 支持壓縮的類型

error_page 404 /404.html; # 錯誤頁面
error_page 500 502 503 504 /50x.html; # 錯誤頁面

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

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

}

最后一步,重啟nginx

/etc/init.d/nginx restart

瀏覽器訪問192.168.2.108,出現(xiàn)如下頁面表示啟動成功

nginx相關(guān)命令

# 啟動Nginx通過Nginx訪問

  /etc/init.d/nginx start

  /etc/init.d/nginx stop

 

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

  /etc/init.d/nginx configtest

 

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

  # 對線上影響最低

  /etc/init.d/nginx reload 

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

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

相關(guān)文章

  • python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼

    python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼

    今天小編就為大家分享一篇python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python3將視頻流保存為本地視頻文件

    python3將視頻流保存為本地視頻文件

    這篇文章主要為大家詳細(xì)介紹了python3將視頻流保存為本地視頻文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python字典操作簡明總結(jié)

    Python字典操作簡明總結(jié)

    這篇文章主要介紹了Python字典操作簡明總結(jié),本文總結(jié)了創(chuàng)建字典 、創(chuàng)建一個"默認(rèn)"字典、遍歷字典、獲得value值、成員操作符:in或not in 、更新字典、刪除字典等常用操作,需要的朋友可以參考下
    2015-04-04
  • python調(diào)用百度通用翻譯API的方法實(shí)現(xiàn)

    python調(diào)用百度通用翻譯API的方法實(shí)現(xiàn)

    本文主要介紹了python調(diào)用百度通用翻譯API的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python+pytest自動化測試函數(shù)測試類測試方法的封裝

    python+pytest自動化測試函數(shù)測試類測試方法的封裝

    這篇文章主要介紹了python+pytest自動化測試函數(shù)測試類測試方法的封裝,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Python內(nèi)置的字符串處理函數(shù)詳細(xì)整理(覆蓋日常所用)

    Python內(nèi)置的字符串處理函數(shù)詳細(xì)整理(覆蓋日常所用)

    Python內(nèi)置的字符串處理函數(shù)整理,有字母處理、格式化相關(guān)、字符串搜索相關(guān)、字符串替換相關(guān)等等
    2014-08-08
  • 教你如何使Python爬取酷我在線音樂

    教你如何使Python爬取酷我在線音樂

    這篇文章主要介紹了如何利用?Python?實(shí)現(xiàn)酷我在線音樂的爬取,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-04-04
  • django 做 migrate 時 表已存在的處理方法

    django 做 migrate 時 表已存在的處理方法

    今天小編就為大家分享一篇django 做 migrate 時 表已存在的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python 自動識別并連接串口的實(shí)現(xiàn)

    python 自動識別并連接串口的實(shí)現(xiàn)

    這篇文章主要介紹了python 自動識別并連接串口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置

    tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置

    今天小編就為大家分享一篇tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論

九龙县| 昌乐县| 称多县| 塔河县| 水城县| 错那县| 蓝田县| 新河县| 通州区| 阿鲁科尔沁旗| 兴国县| 张家港市| 望城县| 古丈县| 安仁县| 临猗县| 雅江县| 东阿县| 介休市| 涟源市| 建平县| 民乐县| 依兰县| 江永县| 咸阳市| 如东县| 封开县| 阜城县| 荣成市| 双桥区| 湘西| 孝义市| 桓台县| 泌阳县| 苍山县| 炉霍县| 富民县| 谷城县| 醴陵市| 兴山县| 庆安县|