1. 程式人生 > >部署Django部落格全記錄之Nginx篇(一)

部署Django部落格全記錄之Nginx篇(一)

Nginx的優點

  • 注:具體原理沒搞清,先記著
  1. Nginx更安全;Nginx能更好地處理靜態資源(通過一些http request header)。
  2. Nginx也可以快取一些動態內容;Nginx可以更好地配合CDN。
  3. Nginx可以進行多臺機器的負載均衡。
  4. 不需要在wsgi server那邊處理keep alive;讓Nginx來處理slow client。

使用了Gunicorn或者uWSGI,為什麼還需要Nginx?

  1. 本地有多個 web 服務,有 Python、php、java 編寫的,都想監聽 80 埠,Nginx可以負責轉發服務。
  2. 如伺服器被人 黑,nginx 可以比較方便的把一些 IP 加入黑名單,直接改配置檔案就好了。要是 uwsgi 或者 gunicorn,可能還要修改自己應用的程式碼,把 IP 過濾寫進去。

Nginx 服務相關的操作

$ sudo apt-get install nginx    //安裝
$ sudo service nginx start     //啟動
$ sudo service nginx status   //狀態
$ sudo service nginx stop     //停止
$ sudo service nginx restart   //重啟
ps -aux | grep nginx   //檢視Nginx程序

ubuntu安裝nginx的目錄結構

內容

  • /var/www/html :實際的Web內容,它在預設情況下只包含您在前面看到的預設Nginx的頁面,供應出的/var/www/html目錄。 這可以通過改變Nginx配置檔案來改變。

伺服器配置

  • /etc/nginx :nginx的配置目錄。 所有的Nginx配置檔案位於這裡。
  • /etc/nginx/nginx.conf :主要Nginx的配置檔案。 這可以修改以更改Nginx全域性配置。
  • /etc/nginx/sites-available :其中每個站點的“伺服器模組”可以儲存的目錄。 Nginx的不會用找到的配置檔案,在這個目錄中,除非它們被連結到sites-enabled目錄(見下文)。 通常,所有伺服器塊配置都在此目錄中完成,然後通過連結到其他目錄啟用。
  • /etc/nginx/sites-enabled/ :其中,啟用每個站點的“伺服器塊”儲存的目錄。 通常,這些被連結到配置中找到的檔案建立sites-available目錄。
  • /etc/nginx/snippets :該目錄包含可在Nginx的配置在其他地方被列入配置片段,潛在可重複的配置段是重構到片段的良好候選。(這條不懂)

伺服器日誌

  • /var/log/nginx/access.log :到Web伺服器的每個請求都被記錄在此日誌檔案,除非Nginx的配置不這樣做。
  • /var/log/nginx/error.log :任何Nginx的錯誤會被記錄在此日誌。

nginx配置的基本思路和步驟如下

  1. 把2個站點 example1.com, example2.com 放到 nginx 可以訪問的目錄 /www/
  2. 給每個站點分別建立一個 nginx 配置檔案 example1.com.conf,example2.com.conf,
    並把配置檔案放到 /etc/nginx/sites-available/下,
  3. 把/etc/nginx/sites-available/的example1.com.conf,example2.com.conf兩個檔案,符號連結(預設的default配置檔案就是如此,你看sites-enabled下的default檔案的屬性)到/etc/nginx/sites-enabled/目錄下(使用絕對路徑)
    sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/example1.com
  4. 確認在 /etc/nginx/nginx.conf 裡面有一句 include /etc/nginx/sites-enabled/*;

example.com.conf檔案配置詳解

  1. 各個欄位的意思
  2. 作用細節