【Django】Django web項目部署(Nginx+uwsgi)

1、安裝uwsgi

 經過pip安裝uwsgi。html

pip install uwsgi

測試uwsgi,建立test.py文件:python

def application( env , start_response):
     start_response( '200 OK' , [( 'Content-Type' , 'text/html' )])
     return [b "Hello World" ]

經過uwsgi運行該文件。nginx

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

經常使用選項:web

http : 協議類型和端口號bash

processes : 開啓的進程數量服務器

workers : 開啓的進程數量,等同於processes(官網的說法是spawn the specified number ofworkers / processes)app

chdir : 指定運行目錄(chdir to specified directory before apps loading)socket

wsgi-file : 載入wsgi-file(load .wsgi file)測試

stats : 在指定的地址上,開啓狀態服務(enable the stats server on the specified address)spa

threads : 運行線程。因爲GIL的存在,我以爲這個真心沒啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 容許主進程存在(enable master process)

daemonize : 使進程在後臺運行,並將日誌打到指定的日誌文件或者udp服務器(daemonize uWSGI)。實際上最經常使用的,仍是把運行記錄輸出到一個本地文件上。

pidfile : 指定pid文件的位置,記錄主進程的pid號。

vacuum : 當服務器退出的時候自動清理環境,刪除unix socket文件和pid文件(try to remove all of the generated file/sockets)

2、安裝nginx

sudo apt-get install nginx  #安裝

  啓動Nginx:

/etc/init .d /nginx start  #啓動
/etc/init .d /nginx stop  #關閉
/etc/init .d /nginx restart  #重啓

3、Django部署

在咱們用python manager.py startproject myproject建立項目時,會自動爲咱們生成wsgi文件,因此,咱們如今之須要在項目目錄下建立uwsgi的配置文件便可,咱們採用ini格式:

# myweb_uwsgi.ini file
[uwsgi]
 
# Django-related settings
 
socket = :8000
 
# the base directory (full path)
chdir           = /mnt/myproject
 
# Django s wsgi file
module          = myproject.wsgi
 
# process-related settings
# master
master          = true
 
# maximum number of worker processes
processes       = 4
 
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
 
daemonize       = /mnt/myproject/uwsgi_log .log
 
pidfile = /mnt/myproject/uwsgi_pid .log

再接下來要作的就是修改nginx.conf配置文件。打開/etc/nginx/nginx.conf文件,http中添加以下內容。

server {
     listen         8099;
     server_name    127.0.0.1
     charset UTF-8;
     access_log      /var/log/nginx/myweb_access .log;
     error_log       /var/log/nginx/myweb_error .log;
 
     client_max_body_size 75M;
 
     location / {
         include uwsgi_params;
         uwsgi_pass 127.0.0.1:8000;
         uwsgi_read_timeout 2;
     }  
     location /static {
         expires 30d;
         autoindex on;
         add_header Cache-Control private;
         alias /mnt/myproject/static/ ;
      }
  }
listen 指定的是nginx 對外的端口號。

server_name  設置爲域名或指定的到本機ip。

nginx經過下面兩行配置uwsgi產生關聯:

include uwsgi_params;  
uwsgi_pass 127.0.0.1:8000; // 必須與uwsgi中配置的端口一致

最後咱們在項目目錄下執行下面的命令來啓動關閉咱們的項目:

1 #啓動
2 uwsgi --ini uwsgi.ini 
3 /etc/init.d/nginx start  
4 
5 #中止
6 uwsgi --stop uwsgi_pid.log
7 /etc/init.d/nginx stop

好了 ,如今咱們能夠訪問127.0.0.1:8099便可看到咱們本身的項目了

相關文章
相關標籤/搜索