日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程,可以了解各个软件的执行流程,看过)

發布時間:2024/9/20 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程,可以了解各个软件的执行流程,看过) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個部署,我真的是爬了好久的坑,才爬出來,所以給大家分享一下,避免入坑。

首先我們先了解一下相關知識:
wsgi:
?
一種實現python解析的通用接口標準/協議,是一種通用的接口標準或者接口協議,實現了python web程序與服務器之間交互的通用性。?
利用它,web.py或bottle或者django等等的python web開發框架,就可以輕松地部署在不同的web server上了;
?
uwsgi:
?
同WSGI一樣是一種通信協議?
uwsgi協議是一個uWSGI服務器自有的協議,它用于定義傳輸信息的類型,它與WSGI相比是兩樣東西。
?
uWSGI :一種python web server或稱為Server/Gateway?
uWSGI類似tornadoweb或者flup,是一種python web server,uWSGI是實現了uwsgi和WSGI兩種協議的Web服務器,負責響應python 的web請求。?
因為apache、nginx等,它們自己都沒有解析動態語言如php的功能,而是分派給其他模塊來做,比如apache就可以說內置了php模塊,讓人感覺好像apache就支持php一樣。?
uWSGI實現了wsgi協議、uwsgi協議、http等協議。 Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。
其次了解一下項目流程:
1.首先客戶端請求服務資源,
?
2.nginx作為直接對外的服務接口,接收到客戶端發送過來的http請求,會解包、分析,
?
如果是靜態文件請求就根據nginx配置的靜態文件目錄,返回請求的資源,
?
如果是動態的請求,nginx就通過配置文件,將請求傳遞給uWSGI;uWSGI 將接收到的包進行處理,并轉發給wsgi,
?
3.wsgi根據請求調用django工程的某個文件或函數,處理完后django將返回值交給wsgi,
?
4.wsgi將返回值進行打包,轉發給uWSGI,
?
5.uWSGI接收后轉發給nginx,nginx最終將返回值返回給客戶端(如瀏覽器)。
?
*注:不同的組件之間傳遞信息涉及到數據格式和協議的轉換
接下來請看詳細的安裝與配置步驟:
1.檢測yum是否完好:yum list

2.安裝python需要的依賴包:yum??-y install?zlib-devel?bzip2-devel?openssl-devel?ncurses-devel?sqlite-devel?readline-devel?tk-devel?gcc?make????(手敲,任何地方都別復制)


3.下載python包:

linux系統默認安裝了python

我們需要的版本是python 3.6.2,在centos上進行python2和3并存

wget?https://www.python.org/ftp/python?/3.6.2/Python-3.6.2.tar.xz

在根目錄的opt下可以查看下載好的python3.6.2的壓縮包

4.在opt下解壓python包:?tar -Jxvf Python3.6.2.tar.xz

5.進行安裝路徑配置并編譯安裝:

首先切換路徑:cd Python3.6.2

其次進行路徑配置: ./configure prefix=/usr/local/python3

最后編譯安裝:make && make instal??(需要挺長時間的)

6.進入根目錄下的usr/local下創建愛你python3和pip3的軟鏈接:

7.安裝django

8.安裝uwsgi

9.創建uwsgi的軟鏈接:

先切入到opt下,然后創建uwsgi的軟鏈接:

10.遷移我們自己的django項目:(我的項目是MyBlog)

我用的是xftp工具:

11.測試uwsgi和django的契合:

1.首先下關閉防火墻和selinux

2.切入到我們的項目目錄下,然后用uwsgi命令啟動項目:

?--http ?ip端口傳遞

???--file ??uwsgi文件位置

???--static-map ?靜態文件路由

?

上面我們采用的是命令的方式使用uwsgi啟動django,但是,不夠完美。我們可以構造配置文件進行操作。

12.使用uwsgi腳本啟動django

1.在/opt下創建script目錄

2.在script目錄下創建uwsgi.ini文件

3.配置uwsgi.ini文件

4.給uwsgi授權:

5.在script下啟動項目: uwsgi --ini uwsgi.ini

可以看到這樣也能啟動此項目:

13.安裝nginx:wget??http://nginx.org/download/nginx-1.12.2.tar.gz

下載成功:

14.解壓 nginx壓縮包

15.編譯安裝nginx

16.進入/usr/local下查看nginx

17.創建nginx軟鏈接

18.nginx和uwsgi通訊示意圖:

19.修改nginx的配置文件:

配置內容:(紅色的是與要修改的)

http {

????include ??????mime.types;

????default_type ?application/octet-stream;

?

????log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '

??????????????????????'$status $body_bytes_sent "$http_referer" '

??????????????????????'"$http_user_agent" "$http_x_forwarded_for"'; 日志的格式

?

????#access_log ?logs/access.log ?main;

?

????sendfile ???????on;

????#tcp_nopush ????on;

?

????#keepalive_timeout ?0;

????keepalive_timeout ?65;

?

????#gzip ?on;

server {

????????listen ??????80;

????????server_name ?Qshop; 服務的名稱

?

????????charset utf-8; 編碼格式

?

????????access_log ?logs/host.access.log ?main; 訪問日志

?

????????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_log /var/log/nginx/error.log error; 錯誤日志,默認沒有,需要手動創建

?

????????location / {

?????????????include uwsgi_params; 加載uwsgi_params

?????????????uwsgi_connect_timeout 30; 連接的超時時間 不要加冒號不要加冒號不要加冒號

?????????????uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通訊的文件地址

????????}

?

????????location = /static/{

????????????alias /opt/Qshop/static; 靜態文件的目錄

????????????index index.html index.htm;

????????}

19.啟動uwsgi和nginx(先殺死當前狀態下的uwsgi和nginx)

kill -9 uwsgi

kill -9 nginx

先啟動uwsgi

再啟動nginx:

?

20.整個過程整理下來了,我覺得是非常詳細了,希望大家不要入坑。
————————————————
版權聲明:本文為CSDN博主「趙小七--」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43567965/article/details/89364046

來源:https://blog.csdn.net/weixin_43567965/article/details/89364046

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程,可以了解各个软件的执行流程,看过)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。