天天看點

Ubuntu 下面部署Django 項目

      django 是 python 開源的 web 架構 ,django 本身運作後也是一個輕量級的伺服器,可以滿足本地的測試,生産環境中的 大量通路, 一般和nginx 和 apache 結合。下面以 Django 與nginx 結合為例進行部署

1、 部署環境 

作業系統:Ubuntu 16.04.2

nginx 版本:nginx/1.10.3

2、部署原理

client----》nginx ----》socket ----》uwsgi----》Django 

3、安裝步驟 

 3.1 安裝 nginx 

apt-get install nginx 

systemctl start nginx

測試 Nginx 

    3.2  安裝  uwsgi

  pip install uwsgi 

在opt 下面建立 test.py 測試  uwsgi 是否正常安裝 

1

2

3

4

<code>#!/usr/bin/env python</code>

<code>def</code> <code>application(env,start_response):</code>

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

<code>    </code><code>return</code> <code>[</code><code>"Hello World"</code><code>]</code>

測試 : 

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

通路 ip:8000,uwsgi 測試成功

3.3  Nginx+uwsgi+django 

上傳 django 項目至  OurCMDB

建立 OurCMDB_uwsgi.ini  配置檔案

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<code>#OurCMDB_uwsgi.ini</code>

<code>[uwsgi]</code>

<code># Django-related settings</code>

<code>socket = :8000 </code><code># socket 監聽端口,對應下文nginx 配置檔案 uwsgi_pass 監聽的端口号</code>

<code># the base directory (full path)</code>

<code>chdir           = </code><code>/opt/OurCMDB/</code>    <code>#項目目錄</code>

<code># Django s wsgi file</code>

<code>module          = OurCMDB.wsgi    </code><code>#wsgi.py 建立django 項目時已經生成 目錄 /opt/OurCMDB/OurCMDB/wsgi.py</code>

<code># process-related settings</code>

<code># master</code>

<code>master          = </code><code>true</code>

<code># maximum number of worker processes</code>

<code>processes       = 4  </code><code>#</code>

<code># ... with appropriate permissions - may be needed</code>

<code># chmod-socket    = 664</code>

<code># clear environment on exit</code>

<code>vacuum          = </code><code>true</code>

檢視項目下面的檔案 

新增nginx 虛拟配置檔案

cat /etc/nginx/sites-available/OurCMDB_nginx.conf

<code>server {</code>

<code>    </code><code>listen         8010; </code>

<code>    </code><code>server_name    _;</code>

<code>    </code><code>charset UTF-8;</code>

<code>    </code><code>access_log      </code><code>/var/log/nginx/OurCMDB_access</code><code>.log;</code>

<code>    </code><code>error_log       </code><code>/var/log/nginx/OurCMDB_error</code><code>.log;</code>

<code>    </code><code>client_max_body_size 75M;</code>

<code>    </code><code>location / { </code>

<code>        </code><code>include uwsgi_params;</code>

<code>        </code><code>uwsgi_pass 127.0.0.1:8000; </code><code>#</code>

<code>        </code><code>uwsgi_read_timeout 2;</code>

<code>    </code><code>}   </code>

<code>    </code><code>location </code><code>/static</code> <code>{</code>

<code>        </code><code>expires 30d;</code>

<code>        </code><code>autoindex on; </code>

<code>        </code><code>add_header Cache-Control private;</code>

<code>        </code><code>alias</code> <code>/opt/OurCMDB/static/</code><code>; </code>

<code>     </code><code>}</code>

<code> </code><code>}</code>

建立  軟連接配接 ln -s OurCMDB_nginx.conf ../sites-enabled/OurCMDB_nginx.conf

啟動 

uwsgi --ini OurCMDB_uwsgi.ini 

檢查Nginx 配置檔案 

啟動nginx  

通路測試 django

本文轉自 水滴石川1 51CTO部落格,原文連結:http://blog.51cto.com/sdsca/2044983,如需轉載請自行聯系原作者