python框架django項目部署相關知識詳解
這篇文章主要介紹了python框架django項目部署相關知識詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一:項目部署的框架
nginx和uWSGI在生產服務器上進行的部署
二:什么是nginx?
nginx是一個web服務器。
什么是web服務器?
web服務器則主要是讓客戶可以通過瀏覽器進行訪問,處理HTML文件,css文件,js文件,圖片等資源。web服務器一般要處理靜態(tài)文件。對接服務器。
什么是靜態(tài)文件?
css,js,html,圖片等不需要后臺進行邏輯處理的文件。
特點:一般將靜態(tài)文件放在web服務器里面。如nginx服務器中,做到動態(tài)靜態(tài)分離的處理。
什么是動態(tài)文件?
除了靜態(tài)文件之外,一般都是動態(tài)文件。
特點:動態(tài)文件一般web服務器不直接進行處理,例如ngnix會將動態(tài)資源轉發(fā)給應用服務器(反向代理),讓應用服務器進行處理,并將處理結果,返給nginx,nginx在將結果返回瀏覽器。
什么是應用服務器?
應用服務器直接面對的是我們寫的程序。
特點:對接程序函數,處理業(yè)務邏輯。
uWSGI是一個應用服務器。
三:uWSGI和nginx之間通信的簡單過程。
uWSGI接到請求后,將請求包進行處理,處理成wsgi(一種通信協議)可以接受的格式,并發(fā)送給wsgi,wsgi根據請求,調用應用程序中的某個文件中的某個函數,進行處理,處理完成后,將返回值,再次交給wsgi,wsgi將返回值進行打包,打包成uWSGI接受的格式,然后uWSGI將結果轉發(fā)給nginx,ngnix最終將返回值給瀏覽器。
四:為什么分成靜態(tài)服務器和應用服務器進行部署?
實現了動和靜分離。提高訪問靜態(tài)文件的速度。降低對后臺的訪問。提高了網站的吞吐量。
實現動靜分離的方式:
1. 頁面靜態(tài)化,頁面靜態(tài)化后的頁面是放在哪里,硬盤還是緩存中。
2. 靜態(tài)文件例如:圖片還有html,css文件時放在web服務器上,還是web服務器的緩存里面?
五:setting.py中的debug=True
我們希望本機訪問的時候,開啟調試模式,錯誤了給錯誤信息的詳細頁面,其他機器訪問的時候,關閉調試模式,錯誤了給他們404頁面。
socket.gethostname() 返回的是主機名
# setting.py中改變DEBUG=True import socket if socket.gethostname() == "xxx": DEBUG =True else: DEBUG = False
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
windows 10 設定計劃任務自動執(zhí)行 python 腳本的方法
這篇文章主要介紹了windows 10 設定計劃任務自動執(zhí)行 python 腳本的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09如何對Python編譯PyInstaller打包生成的exe文件進行反編譯生成pyc、py源代碼文件
很多開發(fā)者沒有發(fā)布源程序代碼,而是將代碼封裝為exe可執(zhí)行文件,這樣不僅更有利于程序傳播,下面這篇文章主要介紹了如何對Python編譯PyInstaller打包生成的exe文件進行反編譯生成pyc、py源代碼文件的相關資料,需要的朋友可以參考下2023-01-01百分百成功的全網最簡約sklearn環(huán)境配置教程
這篇文章主要介紹了百分百成功的全網最簡約sklearn環(huán)境配置教程,圖文全流程講解包簡單易懂,百分百成功,需要的朋友可以參考下2023-03-03