欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 淺談Python項目的服務器部署

淺談Python項目的服務器部署

熱門標簽:南京銷售外呼系統軟件 房產電銷外呼系統 地圖標注微信發送位置不顯示 地圖制圖標注位置改變是移位嗎 315電話機器人廣告 浙江電銷卡外呼系統好用嗎 上海機器人外呼系統哪家好 蓋州市地圖標注 地圖標注的意義點

關于Web服務器和應用服務器

基本概念:

  • Web服務器主要功能就是存儲、處理、傳遞網頁,客戶端和服務器之間基于HTTP協議進行通信。
  • 應用服務器主要是處理動態請求,調用相應的對象完成對請求的處理,返回響應的結果。

兩者之間的區別:

  • Web服務器主要是以HTTP為核心,WEB UI為向導的應用,處理一些靜態請求。
  • 應用服務器雖然也支持HTTP協議,但應用服務器可以通過很多協議為應用程序提供商業邏輯。

Python項目部署架構

在我們平時搭建一個Python Web項目時,比如Django框架的項目,這時候常見的服務端架構:

  1. Nginx服務器作為代理服務器,代理處理靜態資源(js,css,圖片)請求,以及動態請求(增刪改查)轉發以及返回處理結果。
  2. uWSGI服務器負責接受Nginx服務器,處理過后轉發給Django應用,接受Django應用處理返回的信息,在轉發給nginx
  3. Django應用從uWSGI服務器接收請求,調用相應的業務邏輯,處理數據渲染相應的頁面并且返回給uWSGI服務器。

關于cgi、wsgi、uwsgi、http協議

接下來針對上文提到Django項目部署架構,聊聊這幾個協議在這過程中的作用:

  1. http協議:客戶端程序和Nginx服務器通信就是基于http協議,而Nginx服務器作為一個代理服務器,會根據HTTP請求返回靜態資源還是轉發動態請求。
  2. cgi協議:cgi協議是外部應用程序和Web服務器之間的接口標準,簡而言之,就是規定如何讓一個程序與Web服務器程序之間通信。
  3. wsgi協議:基于現存的CGI標準設計,一個Python web框架編寫的應用程序和Web服務器之間通信的規范。
  4. uwsgi:uWSGI服務器獨有的協議,用于uWSGI服務器和其他Web服務器之間的數據通信

關于cgi、fastcgi、php-fpm、FastCGI(額外)

  1. CGI:是 Web Server 與 Web Application 之間數據交換的一種協議。
  2. FastCGI:同 CGI,是一種通信協議,但比 CGI 在效率上做了一些優化。同樣,SCGI 協議與 FastCGI 類似。
  3. PHP-CGI:是 PHP (Web Application)對 Web Server 提供的 CGI 協議的接口程序。
  4. PHP-FPM:是 PHP(Web Application)對 Web Server 提供的 FastCGI 協議的接口程序,額外還提供了相對智能一些任務管理。

關于uWSGI、Nginx服務器

簡單來講,uWSGI也是一個Web服務器,他雖然同時實現了http、uwsgi、wsgi協議,但是更多被作為應用服務器和應用程序之間進行通信。
那么這里就有個疑問了,為什么uWSGI都能直接處理http請求了,還需要Nginx服務器?這樣處理有幾點原因:

  1. 首先Nginx服務器在這過程中屬于代理服務器的角色,每當一個http請求進來,就需要經過Nginx服務器,而Nginx服務器的優勢就在于異步非阻塞的網絡模型,它能夠在單線程的情況下處理大量的請求,針對處理靜態資源請求;而對于動態請求,能夠通過緩存的功能,并且配合CDN進行優化,這樣能夠極大降低系統的負載,降低客戶端響應時間。
  2. 其次,Nginx服務器能夠進行負載均衡,啟用多個后端服務器,通過Nginx對HTTP請求進行分配,這樣能夠極大優化架構的效率,提高處理的性能。
  3. 最后,Nginx有很多模塊支持一些比如白名單,黑名單功能,并且配合keepalive實現高可用的架構.

總而言之,Nginx服務器在處理http請求上,都有著uWSGI沒有的優勢,所以在日常部署環境中,經常會使用到Nginx+uWSGI。

uWSGI

安裝部署

uWSGI有兩種安裝方式,一種是通過pip安裝,一種是通過源碼安裝。這里就簡單介紹pip安裝方式,源碼安裝有興趣可以私下自己了解。

pip install uwsgi

相關文件

uWSGI服務器在啟動的過程中主要涉及到以下這幾個文件,其中uwsgi.sock還會涉及到Nginx相關部署的問題,在Nginx配置的時候回繼續展開講。

(venv) [root@mbb-48 uwsgi]# tree .
.
|-- uwsgi.ini       # uwsgi配置文件
|-- uwsgi.log       # uwsgi日志文件
|-- uwsgi.pid       # uwsgi運行進程pid
|-- uwsgi.sock      # uwsgi socket
`-- uwsgi.status    # uwsgi狀態文件

配置示例

以下配置是自己一個項目中用到的,其中的配置參數都是比較常見通用。

[uwsgi]
chdir=/data/Novel/novel_test
module=novel_test.wsgi:application
home=/data/Novel/venv
static-map=/static=/data/Novel/novel_test/static
threads=8
http=0.0.0.0:23606
master=true
vacuum=true
thunder-lock=true
uid=root
gid=root
harakiri=30
post-buffering=4096
socket=%(chdir)/uwsgi/uwsgi.sock
stats=%(chdir)/uwsgi/uwsgi.status
pidfile=%(chdir)/uwsgi/uwsgi.pid
daemonize=%(chdir)/uwsgi/uwsgi.log

配置解析

  • chdir: 定義項目的目錄
  • module: 要使用的 WSGI 模塊,不同的Python web框架中使用方式也不太一樣。
  • home: 指定Python執行環境,這個參數針對有不同Python運行環境,比如virtualenv創建獨立Python環境的情況。
  • static-map: 映射靜態目錄
  • threads: 線程數量
  • http: 指定啟動地址和端口
  • master: 啟用主進程
  • vacuum: 退出時,清理產生的中間文件(sock,pid,stats)
  • thunder-lock: 序列化接收的內容
  • uid: 指定啟動用戶
  • gid: 指定啟動組
  • harakiri: 設置服務器響應時間
  • post-buffering: 啟用緩沖
  • socket: socket文件存放路徑
  • stats: stats文件存放路徑
  • pidfile: pid文件存放路徑
  • daemonize: 日志文件輸出文件路徑

額外配置

  • processes: 進程數量
  • buffer-size: 設置緩沖大小
  • listen: 設置監聽隊列大小(默認100)
  • max-requests: 每個工作進程請求書的最高上限
  • procname-prefix-spaced: 工作進程的前綴名
  • wsgi-file: 指定加載WSGI文件

常用命令

上面介紹了相關常用的配置參數,當設置uWSGI參數后,需要啟動指定配置文件,以及有關暫停,重啟的動作。

uwsgi --ini uwsgi.ini   # 啟動uWSGI
uwsgi --stop uwsgi.pid  # 暫停uWSGI
uwsgi --reload uwsgi.pid    # 重啟uWSGI

服務監控

uWSGI之一Stats服務器機制,它能將uWSGI狀態作為一個JSON對象導出一個socket中,只需要像我們前面配置uWSGI配置文件一樣,添加stats選項,跟著一個有效的socket地址接口。

當你配置完畢后,就可以通過客戶端連接到指定的socket地址,將會獲得一個包含uWSGI內部統計數據的JSON對象。

uwsgi --connect-and-read uwsgi.status

執行完這個命令后,讀取的返回的結果是一個json字符串,字符串中包括每個線程的狀態,整個應用的負載,版本,監聽隊列等詳細的信息。

uwsgitop查看實時狀態
uwsgitop是一個開源的實時監控uWSGI服務器狀態的工具,安裝也十分簡單:

pip install uwsgitop

具體uwsgitop像一個top命令,監聽應用程序并且使用socket地址進行調用,查看進程運行狀態,運行詳細信息:

uwsgitop uwsgi/uwsgi.status
uwsgi-2.0.19.1 - Sun Sep 20 15:58:48 2020 - req: 6 - RPS: 0 - lq: 0 - tx: 67.6K
node: mbb-48 - cwd: /data/Novel/novel_test - uid: 0 - gid: 0 - masterpid: 15109
 WID    %       PID     REQ     RPS     EXC     SIG     STATUS  AVG     RSS     VSZ     TX      ReSpwn  HC      RunT    LastSpwn
 1	100.0   15144   6	0	0	0	idle    15ms    0	0	67.6K   1	0	125.449 15:48:08
  :2    16.7    -	1	0	-	-	idle    -	-	-	-	-
  :3    16.7    -	1	0	-	-	idle    -	-	-	-	-
  :0    33.3    -	2	0	-	-	idle    -	-	-	-	-
  :1    33.3    -	2	0	-	-	idle    -	-	-	-	-

具體有興趣的同學可以參考github地址:

https://github.com/xrmx/uwsgitop

總結

關于uWSGI服務器相關使用就總結到這里,因為在平時工作中會經常接觸到,但是由于沒有應用到一些高并發的場景,對于uwsgi調優方面沒有多少經驗,等待以后遇到此類問題再繼續總結性能調優方面的問題。同時有關Nginx方面的配置留到下一篇文章繼續講,未完待續。。。。。

以上就是淺談Python項目的服務器部署的詳細內容,更多關于python 服務器部署的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 如何把python項目部署到linux服務器
  • Django+python服務器部署與環境部署教程詳解
  • python+selenium定時爬取丁香園的新型冠狀病毒數據并制作出類似的地圖(部署到云服務器)
  • 基于騰訊云服務器部署微信小程序后臺服務(Python+Django)
  • Python Web程序部署到Ubuntu服務器上的方法
  • Linux下將Python的Django項目部署到Apache服務器
  • 在服務器端實現無間斷部署Python應用的教程
  • Python實現根據指定端口探測服務器/模塊部署的方法

標簽:赤峰 日照 雙鴨山 陽泉 克拉瑪依 金華 臨汾 貴州

巨人網絡通訊聲明:本文標題《淺談Python項目的服務器部署》,本文關鍵詞  淺談,Python,項,目的,服務器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談Python項目的服務器部署》相關的同類信息!
  • 本頁收集關于淺談Python項目的服務器部署的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲精品视频观看| 中文字幕av一区二区三区高| 亚洲综合视频在线| av日韩在线网站| 欧美性猛交xxxxx少妇| 国产精品理论片在线观看| 国产乱码精品一区二区三区忘忧草| 一区二区三区四区免费| 日韩三级伦理片妻子的秘密按摩| 日日夜夜免费精品| 特大黑人巨人吊xxxx| 欧美一区二区三区婷婷月色| 亚洲v日本v欧美v久久精品| 色悠悠在线视频| 911精品国产一区二区在线| 亚洲午夜电影网| 精品久久久久一区二区| 69堂成人精品免费视频| 日韩—二三区免费观看av| 青青草视频播放| 精品国产区一区| 韩国女主播一区| 日韩在线一卡二卡| 中文字幕一区二区三区在线观看| 波多野结衣91| 欧美日韩综合在线| 日韩av中文字幕一区二区三区| 国产精品亚洲无码| 国产婷婷色一区二区三区在线| 国产精品羞羞答答xxdd| 免费成人美女女在线观看| 中文字幕在线免费不卡| 久久久久亚洲av无码麻豆| 欧美欧美欧美欧美| 奇米影视一区二区三区小说| 蜜桃无码一区二区三区| 日本一区二区成人在线| 91看片淫黄大片一级在线观看| 欧美男男青年gay1069videost| 日韩av中文字幕一区二区| 永久免费毛片在线观看| 中文字幕制服丝袜一区二区三区 | 黄色裸体一级片| 亚洲人成精品久久久久| 日本一区二区在线观看视频| 欧美不卡一区二区三区| 久久久久久久久久电影| 福利一区二区在线| 欧美色图片你懂的| 免播放器亚洲一区| 51精品免费网站| 亚洲一区二区在线免费看| 特级西西人体wwwww| 国产精品网站在线| 欧美xxxxx少妇| 久久综合久久综合九色| thepron国产精品| 日韩欧美亚洲一区二区| 国产精品18久久久久久久久| 欧美视频在线播放| 紧缚奴在线一区二区三区| 日本二三区不卡| 日本欧美大码aⅴ在线播放| 亚洲 欧美 变态 另类 综合| 亚洲国产毛片aaaaa无费看| 女人黄色一级片| 亚洲久草在线视频| 色噜噜日韩精品欧美一区二区| 成人免费一区二区三区在线观看 | 亚洲欧洲日韩女同| 朝桐光av一区二区三区| 中文字幕一区二区三区在线观看| 少妇户外露出[11p]| 国产精品二三区| 少妇大叫太粗太大爽一区二区| 亚洲欧洲精品一区二区三区| 日本一卡二卡在线| 亚洲欧洲三级电影| 免费看黄色av| 午夜欧美一区二区三区在线播放| 久久av红桃一区二区禁漫| 日韩精品电影在线| 色综合久久久网| 国产在线乱码一区二区三区| 欧美日韩一区二区三区不卡| 国产精品一区二区黑丝| 日韩一级高清毛片| 一区二区三区日韩欧美精品| 国产精品密蕾丝袜| 天天做天天摸天天爽国产一区| www日韩在线| 精东粉嫩av免费一区二区三区| 欧美日韩亚洲综合一区二区三区 | 九九视频精品免费| 欧美精品丝袜中出| 91视频精品在这里| 国产精品久久久久久久久免费樱桃| wwwwxxxx国产| 香蕉久久一区二区不卡无毒影院 | 色综合99久久久无码国产精品| 亚洲一区二区三区视频在线| 天天操天天操天天操天天操天天操| 麻豆国产欧美日韩综合精品二区 | 国产成a人无v码亚洲福利| 欧美大黄免费观看| 国产又粗又猛又色| 亚洲午夜精品在线| 欧美在线看片a免费观看| 成人18视频日本| 国产精品美女久久久久久久| 色欲AV无码精品一区二区久久| 秋霞国产午夜精品免费视频| 7799精品视频| 制服丝袜在线第一页| 亚洲自拍偷拍网站| 欧美午夜理伦三级在线观看| www.久久精品| 亚洲三级小视频| 色婷婷精品大视频在线蜜桃视频 | 国产一区在线不卡| 337p日本欧洲亚洲大胆色噜噜| 国产成人无码一区二区在线观看| 午夜不卡在线视频| 91精品一区二区三区在线观看| 国产一级免费片| 天堂午夜影视日韩欧美一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 理论片日本一区| 精品国产123| 国产免费无遮挡吸奶头视频| 日韩高清在线一区| 亚洲一区二区三区四区在线观看| 99在线精品观看| 亚洲精品网站在线观看| 欧洲视频一区二区| 九色91porny| 亚洲国产乱码最新视频 | 亚洲精品色午夜无码专区日韩| 91麻豆制片厂| 一级少妇精品久久久久久久| 亚洲精品乱码久久久久久黑人 | 午夜精品久久久久久久99樱桃| 欧美精品一二三四| 欧美丰满少妇人妻精品| 久久精品久久久精品美女| 久久久www成人免费无遮挡大片| jizz日本在线播放| 成人黄色综合网站| 亚洲自拍偷拍综合| 日韩欧美国产高清| 国产又粗又猛又爽又黄的视频小说| 粉嫩欧美一区二区三区高清影视| 亚洲丝袜自拍清纯另类| 欧美美女bb生活片| 国产熟妇久久777777| 国产毛片精品视频| 亚洲欧美另类小说| 制服丝袜亚洲播放| 中文字幕av久久爽一区| 成人av免费观看| 亚洲成人一区二区| 久久亚洲综合色| 色综合久久综合网欧美综合网| 欧美熟妇精品一区二区| 免费在线欧美视频| 国产精品久久毛片| 51精品秘密在线观看| 亚洲黄色小说视频| 99热99精品| 日本aⅴ精品一区二区三区| 久久久精品中文字幕麻豆发布| 一本色道久久加勒比精品| 小毛片在线观看| 国产aⅴ精品一区二区三区色成熟| 亚洲精品中文在线观看| 欧美本精品男人aⅴ天堂| 粉嫩av性色av蜜臀av网站| 午夜男人的天堂| 国产成人三级在线观看| 亚洲国产日韩一区二区| 久久久美女艺术照精彩视频福利播放| 国产这里有精品| 30一40一50老女人毛片| 不卡视频一二三四| 麻豆精品一区二区综合av| 亚洲日本韩国一区| 337p日本欧洲亚洲大胆精品| 日本电影亚洲天堂一区| 久久成人激情视频| 美女被艹视频网站| 国产一区美女在线| 午夜视黄欧洲亚洲| 国产精品福利一区| 精品免费一区二区三区| 欧美午夜一区二区三区免费大片| 成人小视频免费看| 在线观看免费视频黄| 成人动漫一区二区三区| 美女mm1313爽爽久久久蜜臀| 亚洲免费观看在线视频|