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

Django + Uwsgi + Nginx 實現(xiàn)生產環(huán)境部署的方法

 更新時間:2018年06月20日 09:57:28   作者:金角大王  
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式。這篇文章主要介紹了Django + Uwsgi + Nginx 實現(xiàn)生產環(huán)境部署,感興趣的小伙伴們可以參考一下

如何在生產上部署Django?

Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式。

uwsgi介紹

uWSGI是一個Web服務器,它實現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。

要注意 WSGI / uwsgi / uWSGI 這三個概念的區(qū)分。
1.WSGI是一種Web服務器網關接口。它是一個Web服務器(如nginx,uWSGI等服務器)與web應用(如用Flask框架寫的程序)通信的一種規(guī)范。
2.uwsgi是一種線路協(xié)議而不是通信協(xié)議,在此常用于在uWSGI服務器與其他網絡服務器的數(shù)據通信。
3.而uWSGI是實現(xiàn)了uwsgi和WSGI兩種協(xié)議的Web服務器。
4.uwsgi協(xié)議是一個uWSGI服務器自有的協(xié)議,它用于定義傳輸信息的類型(type of information),每一個uwsgi packet前4byte為傳輸信息類型描述,它與WSGI相比是兩樣東西。

uwsgi性能非常高

uWSGI的主要特點如下
1.超快的性能
2.低內存占用(實測為apache2的mod_wsgi的一半左右)
3.多app管理(終于不用冥思苦想下個app用哪個端口比較好了-.-)
4.詳盡的日志功能(可以用來分析app性能和瓶頸)
5.高度可定制(內存大小限制,服務一定次數(shù)后重啟等)

總而言之uwgi是個部署用的好東東,正如uWSGI作者所吹噓的:

If you are searching for a simple wsgi-only server, uWSGI is not for you, but if you are building a real (production-ready) app that need to be rock-solid, fast and easy to distribute/optimize for various load-average, you will pathetically and morbidly fall in love (we hope) with uWSGI.

Uwsgi 安裝使用

# Install the latest stable release:

pip install uwsgi

# ... or if you want to install the latest LTS (long term support) release,

pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz 

基本測試

Create a file called test.py:

# test.py

def application(env, start_response):

  start_response('200 OK', [('Content-Type','text/html')])

  return [b"Hello World"] # python3

  #return ["Hello World"] # python2 

運行

uwsgi --http :8000 --wsgi-file test.py 

用uwsgi 啟動django

uwsgi --http :8000 --module mysite.wsgi 

可以把參數(shù)寫到配置文件里

alex@alex-ubuntu:~/uwsgi-test$ more crazye-uwsgi.ini 

[uwsgi]

http = :9000

#the local unix socket file than commnuincate to Nginx

socket = 127.0.0.1:8001

# the base directory (full path)

chdir = /home/alex/CrazyEye 

# Django's wsgi file

wsgi-file = CrazyEye/wsgi.py

# maximum number of worker processes

processes = 4

#thread numbers startched in each worker process

threads = 2

#monitor uwsgi status 

stats = 127.0.0.1:9191

# clear environment on exit

vacuum     = true 

啟動

/usr/local/bin/uwsgi crazye-uwsgi.ini 

Nginx安裝使用

sudo apt-get install nginx

sudo /etc/init.d/nginx start  # start nginx 

為你的項目生成Nginx配置文件

You will need the uwsgi_params file, which is available in the nginx directory of the uWSGI distribution, or from https://github.com/nginx/nginx/blob/master/conf/uwsgi_params

Copy it into your project directory. In a moment we will tell nginx to refer to it.

Now create a file called mysite_nginx.conf, and put this in it:

# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
  # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
  server 127.0.0.1:8001; # for a web port socket (we'll use this first)

}
# configuration of the server

server {

  # the port your site will be served on

  listen   8000;

  # the domain name it will serve for

  server_name .example.com; # substitute your machine's IP address or FQDN

  charset   utf-8; 

  # max upload size
  client_max_body_size 75M;  # adjust to taste

  # Django media
  location /media {

    alias /path/to/your/mysite/media; # your Django project's media files - amend as required

  } 

  location /static {

    alias /path/to/your/mysite/static; # your Django project's static files - amend as required

  }

  # Finally, send all non-media requests to the Django server.

  location / {
    uwsgi_pass django;
    include   /path/to/your/mysite/uwsgi_params; # the uwsgi_params file you installed

  }
} 

This conf file tells nginx to serve up media and static files from the filesystem, as well as handle requests that require Django's intervention. For a large deployment it is considered good practice to let one server handle static/media files, and another handle Django applications, but for now, this will do just fine.

Symlink to this file from /etc/nginx/sites-enabled so nginx can see it:

sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/ 

Deploying static files

Before running nginx, you have to collect all Django static files in the static folder. First of all you have to edit mysite/settings.py adding:

STATIC_ROOT = os.path.join(BASE_DIR, "static/") 

and then run

python manage.py collectstatic 

此時啟動Nginx 和Uwsgi,你的django項目就可以實現(xiàn)高并發(fā)啦!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python中的getter和setter的方法使用詳解

    Python中的getter和setter的方法使用詳解

    基本上,在面向對象編程語言中,使用setter和getter方法的主要目的是為了確保數(shù)據的封裝,這篇文章主要介紹了Python的getter和setter的方法使用詳解,需要的朋友可以參考下
    2022-12-12
  • Python 字符串換行的多種方式

    Python 字符串換行的多種方式

    本文通過四種方法給大家介紹了Python 字符串換行的方式,在文中最下面通過代碼給大家介紹了python代碼過長的換行方法,需要的朋友可以參考下
    2018-09-09
  • Python循環(huán)結構詳解

    Python循環(huán)結構詳解

    這篇文章主要介紹了Python循環(huán)結構詳解,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • PyQt5 設置窗口全屏顯示方式

    PyQt5 設置窗口全屏顯示方式

    這篇文章主要介紹了PyQt5 設置窗口全屏顯示方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Django自定義YamlField實現(xiàn)過程解析

    Django自定義YamlField實現(xiàn)過程解析

    這篇文章主要介紹了Django自定義YamlField實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python獲取二維數(shù)組的行列數(shù)的2種方法

    Python獲取二維數(shù)組的行列數(shù)的2種方法

    這篇文章主要介紹了Python獲取二維數(shù)組的行列數(shù)的2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • PIL圖像處理模塊paste方法簡單使用詳解

    PIL圖像處理模塊paste方法簡單使用詳解

    這篇文章主要介紹了PIL圖像處理模塊paste方法簡單使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python Django 實現(xiàn)簡單注冊功能過程詳解

    Python Django 實現(xiàn)簡單注冊功能過程詳解

    這篇文章主要介紹了Python Django 實現(xiàn)簡單注冊功能過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python使用自帶的base64庫進行base64編碼和解碼

    Python使用自帶的base64庫進行base64編碼和解碼

    在Python中,處理數(shù)據的編碼和解碼是數(shù)據傳輸和存儲中非常普遍的需求,其中,Base64是一種常用的編碼方案,本文我將詳細介紹如何使用Python的base64庫進行Base64編碼和解碼,需要的朋友可以參考下
    2025-04-04
  • python數(shù)據批量寫入ScrolledText的優(yōu)化方法

    python數(shù)據批量寫入ScrolledText的優(yōu)化方法

    今天小編就為大家分享一篇python數(shù)據批量寫入ScrolledText的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

灌阳县| 永胜县| 万安县| 高安市| 开江县| 南华县| 峨山| 大安市| 烟台市| 鄄城县| 深圳市| 道孚县| 永川市| 鹤峰县| 济阳县| 上犹县| 苏尼特左旗| 玛纳斯县| 台山市| 潜江市| 庆安县| 苏州市| 堆龙德庆县| 漳州市| 宁蒗| 阆中市| 即墨市| 伽师县| 罗田县| 娄烦县| 隆安县| 张家口市| 页游| 蓬安县| 磴口县| 蒙山县| 清苑县| 南靖县| 盐边县| 太仆寺旗| 六枝特区|