Django+Nginx概念安裝和使用–使用Django建立你的第一個網站

  • 2019 年 10 月 3 日
  • 筆記

一 前記

  最近在使用Django倒騰屬於自己的網站,由於以前沒有接觸過多少這類資訊,所以,很多東西都是從零開始學習的。在參考網上的資料時候,發現很多對這方面記錄的,很多人都寫的不是很清楚,也許我這個新手的原因。反正自己是看不懂的。對著很多操作流程來進行建站,嘗試了很多次才算是成功。本著前人栽樹,後人乘涼的原則。鄙人就把自己的操作流程記錄下來了。希望對第一次安裝並使用Nginx的人有價值。寫的不好的地方也多請高手指點。

二 為什麼要用Nginx?

  官方答案:Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
  通俗理解:Nginx就是讓你的IP:埠的組合變成一個方便你搜索的網址:比如,百度的網址:www.baidu.com Nginx裡面的就是對應的:23.123.12.34:8001(隨便一個IP地址做例子),並且它還有別的價值,比如,不容易短線,網站訪問速度快,並發能力強嘛。
  在使用Django建站的時候,一般使用:python manage.py 0.0.0.0:8001 這樣是可以起動網頁了,輸入:http://127.0.0.1:8001 你就會發現自己的網頁已經成功的顯示了。接下來,你會發現有兩個問題:一個是只要執行:python manage.py 0.0.0.0:8001的終端一旦關掉或者這個進程被殺死,後台馬上掛掉了。還有一個就是自己的網站怎麼後面有一個埠號呢?為什麼很多商用的網站沒有呢?百度有嗎?Google有嗎?到底是怎麼做到的呢?
這個就是Ningx + uwsgi做的事情了。

三 Nginx安裝和配置

  一般有幾種安裝方式:
命令行安裝:本人的是mac。安裝的方式就是:brew install nginx
  還有一個就是所有系統都通用的源碼安裝方式:
去網站:http://nginx.org/download/下載所需的版本,一般是最新的。使用命令安裝:

tar zxf nginx-1.0.8.tar.gz  cd nginx-1.0.8  ./configure ./configure --add-module=path/substitutions4nginx-read-only //注意這裡的path是相對應的真實路徑  make  make install

  接下來就是配置nginx了,這裡有很多配置方法,估計要把每項都弄清楚需要花一些時間,本人就只是做簡單的安裝並測試,所以,配置就比較簡單了。主要注意的就是server_name 和uswgi_params 本人的server內容如下:

    server {          listen       80;          server_name  localhost; //localhost or your web address            #charset koi8-r;            #access_log  logs/host.access.log  main;            location / {              root   html;              index  index.html index.htm;              uwsgi_pass 127.0.0.1:8008; // ip addr and port is your open ip or loopback 127.0.0.1              include uwsgi_params;          }            #error_page  404              /404.html;            # redirect server error pages to the static page /50x.html          #          error_page   500 502 503 504  /50x.html;          location = /50x.html {              root   html;          }

  假如你找不到nginx.conf在哪兒,就直接使用locate nginx.conf查看一下吧。我的路徑是:/usr/local/etc/nginx/nginx.conf

四 uwsig使用配置文件啟動

  uwsgi在上篇文章中已經有介紹了,這裡就不多做分析了,這裡就直接使用吧。在和manage.py同級目錄下創建:helloapp.wsgi 並填入下面內容,切記,文件的路徑要改成自己工程的。

[uwsgi]  # 項目  chdir=/Users/Documents/igihub/django/django_example/helloapp/  # 指定項目的application  module=helloapp.wsgi:application  # 指定sock的文件路徑  socket=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.sock  # 進程個數  workers=5  pidfile=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.pid  # 指定IP埠  socket=127.0.0.1:8008  # 指定靜態文件  #static-map=/static=/opt/proj/teacher/static  # 啟動uwsgi的用戶名和用戶組  uid=root  gid=root  # 啟用主進程  master=true  # 自動移除unix Socket和pid文件當服務停止的時候  vacuum=true  # 序列化接受的內容,如果可能的話  thunder-lock=true  # 啟用執行緒  enable-threads=true  # 設置自中斷時間  harakiri=30  # 設置緩衝  post-buffering=4096  # 設置日誌目錄  daemonize=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.log

五 啟動載入

  一切都準備就緒了。這之後,直接運行:
sudo nginx && uwsgi –int uwsgi.wsgi 即可跑起來了。
  在網頁中輸入:
http://localhost 即可看到你需要顯示的網頁內容,這時你會發現埠號已經不存在了,直接kill掉wsgi發現也沒有那麼容易了。這個就是nginx + uwsgi的神奇價值所在。
  這個雖然只是一個簡單的應用,但是對於新手,還是會有很多是搞不定,多上網搜索,多請教問題。電腦是一門實踐性很強的學科,實踐的多了,你就能倒騰出來東西了。

 

參考文檔:

https://www.cnblogs.com/MacoLee/p/5889122.html