部署Django部落格全記錄之Nginx篇(一)
阿新 • • 發佈:2018-12-23
Nginx的優點
- 注:具體原理沒搞清,先記著
- Nginx更安全;Nginx能更好地處理靜態資源(通過一些http request header)。
- Nginx也可以快取一些動態內容;Nginx可以更好地配合CDN。
- Nginx可以進行多臺機器的負載均衡。
- 不需要在wsgi server那邊處理keep alive;讓Nginx來處理slow client。
使用了Gunicorn或者uWSGI,為什麼還需要Nginx?
- 本地有多個 web 服務,有 Python、php、java 編寫的,都想監聽 80 埠,Nginx可以負責轉發服務。
- 如伺服器被人 黑,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配置的基本思路和步驟如下
- 把2個站點
example1.com
,example2.com
放到 nginx 可以訪問的目錄 /www/ - 給每個站點分別建立一個 nginx 配置檔案 example1.com.conf,example2.com.conf,
並把配置檔案放到 /etc/nginx/sites-available/下, - 把/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
- 確認在 /etc/nginx/nginx.conf 裡面有一句
include /etc/nginx/sites-enabled/*;