這篇文章主要介紹Django+Uwsgi+Nginx生產(chǎn)環(huán)境怎么部署,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比港南網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式港南網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋港南地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。使用runserver可以使我們的django項目很便捷的在本地運行起來,但這只能在局域網(wǎng)內(nèi)訪問,如果在生產(chǎn)環(huán)境部署django,就要多考慮一些問題了。比如靜態(tài)文件處理,安全,效率等等。
準備條件:
1.確保有一個能夠用runserver正常啟動的django項目
2.項目已上傳到linux
3.linux上已部署好python環(huán)境,且已安裝好項目所需的模塊
安裝uwsgi
uwsgi是python的一個模塊,安裝uwsgi只需簡單的pip命令就可以了
pip3 install uwsgi
基于uwsgi+django的實現(xiàn)
1.使用命令啟動uwsgi
第一步:進入django項目
第二步:命令測試啟動
uwsgi --http 192.168.31.123:8080 --file teacher/wsgi.py --static-map=/static=static
參數(shù)說明:
--http 這個就和runserver一樣指定IP 端口
--file 這個文件就里有一個反射,如果你在調(diào)用他的時候沒有指定Web Server就使用默認的
-- static 做一個映射,指定靜態(tài)文件
此時,訪問http://192.168.2.108:8080/,如圖所示,表示項目啟動成功
2.使用uwsgi配置文件啟動django項目
第一步:在django項目同級目錄創(chuàng)建script目錄,用于存放配置腳本等等
第二步:進入/script目錄,創(chuàng)建一個uwsgi.ini文件
編輯uwsgi.ini文件內(nèi)容如下:
# uwsig使用配置文件啟動 [uwsgi] # 項目目錄 chdir=/opt/proj/teacher/ # 指定項目的application module=teacher.wsgi:application # 指定sock的文件路徑 socket=/opt/proj/script/uwsgi.sock # 進程個數(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 # 啟用主進程 master=true # 自動移除unix Socket和pid文件當服務(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
啟動項目:
訪問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的默認配置目錄為/etc/nginx/conf.d
創(chuàng)建teacher.conf文件
配置內(nèi)容如下:
server { # 這個server標識我要配置了 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; # 錯誤頁面 # 指定項目路徑uwsgi location / { # 這個location就和咱們Django的url(r'^admin/', admin.site.urls), include uwsgi_params; # 導入一個Nginx模塊他是用來和uWSGI進行通訊的 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配置是重啟生效的,如果你修改完了,不知道對 不對又擔心影響其他人可以使用它測試 /etc/init.d/nginx configtest # 如果是生產(chǎn)環(huán)境的話Nginx正在運行,就不要直接stop start 或者 restart 直接reload就行了 # 對線上影響最低 /etc/init.d/nginx reload
至此,Django + Uwsgi + Nginx 的生產(chǎn)環(huán)境部署就完成了
以上是“Django+Uwsgi+Nginx生產(chǎn)環(huán)境怎么部署”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁名稱:Django+Uwsgi+Nginx生產(chǎn)環(huán)境怎么部署-創(chuàng)新互聯(lián)
文章源于:http://www.rwnh.cn/article28/psdcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、用戶體驗、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容