nginx配置參數詳解及django框架下的nginx和uwsgi的搭建

1、nginx簡介、

  nginx(發音"engine x")是俄羅斯軟件工程師Igor Sysoev開發的免費開源web服務器軟件。nginx於2004年發佈,聚焦於高性能,高併發和低內存消耗問題。而且具備多種web服務器功能特性:負載均衡,緩存,訪問控制,帶寬控制,以及高效整合各類應用的能力,這些特性使nginx很適合於現代網站架構。目前,nginx已是互聯網上第二流行的開源web服務器軟件。html

  三大服務器對好比圖所示:
clipboard.pngnginx

  整體來講,nginx服務器將會是從此web server的主流服務器。web

2、nginx服務的啓停控制

  在講解nginx配置文件參數前,讓咱們先來了解一下nginx的啓停操做吧。在Linux平臺下,控制nginx服務的啓停可不止有一種方法。
  在nginx服務器運行時,會保持着一個主進程和多個work process工做進程,如圖所示:
clipboard.png正則表達式

  咱們經過給主進程發送信號就能夠控制服務的啓停了,那麼如何給主進程發送信號呢,首先須要知道主進程號的PID,獲取PID有兩種途徑,經過ps命令就能夠看到主進程號PID了,圖中的8029就是PID;也能夠經過nginx安裝目錄下log中的nginx.pid, Mac下在/usr/local/var/run/nginx.pid中,如圖所示:django

clipboard.png

一、nginx可接收的符號有
TERM 或 INT——快速中止nginx服務
QUIT——平緩中止nginx服務
HUP——使用新的配置文件啓動進程,以後平緩中止原有進程,又叫平滑重啓
USER1——從新打開日誌,經常使用於日誌切割
USER2——使用新版本nginx,又叫平滑升級
WINCH——平緩中止work process,用於nginx服務器平滑升級緩存

二、nginx啓動參數:
-c:配置文件
-t:檢查語法錯誤
-p:更改安裝路徑
-q:只顯示錯誤信息服務器

三、nginx中止操做:網絡

nginx -g TERM|INT|QUIT

或者架構

kill -9 | SIGKILL `~/log/nginx.pid`

重啓nginx:併發

nginx -g HUP [-c newconfigure]

四、升級nginx:
更改新安裝路徑

nginx -p newInstallPath

平滑升級

nginx -g USER2

平滑中止舊服務

nginx -g WINCH

3、nginx配置參數詳解

  衆所周知,默認的nginx配置文件都存放在安裝目錄的conf中,主配置文件名爲nginx.conf,接下來咱們會詳細介紹內部的相關參數。
  先看下面的配置項:

worker_processes 1;            #全局有效
events {
    worker_connections 1024;    #events部分有效
}
http {
    include    mime.types;             #http部分有效
    default_type    applicaiotion/octet-stream;
    sendfile    on;
    keepalive_timeout    65;
    server {
        listen    80;
        server_name    localhost;        #http的server部分有效
        location / {                        #http/server的location部分有效
            root    html;
            index    index.html    index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root    html;
        }
    }
}

  由上段代碼能夠看出,nginx.conf由三部分組成,全局塊、events塊和http塊。每一個http塊又由http全局塊、多個server塊構成。而每一個server塊又包含多個server塊和多個location塊。
  在講解配置項以前,讓咱們先了解一下各個塊的做用。
一、全局塊:主要影響nginx服務器總體運行的配置指令,一般的配置有nginx用戶(組),work process數,進程、日誌文件存放路徑以及配置文件引入等等。
二、events塊:主要影響nginx服務器與用戶的網絡鏈接,一般的配置有開啓對多work process下的網絡鏈接進行序列化,是否容許同時接收多個網絡鏈接,每一個work process同時支持的最大鏈接數等等。
三、http塊:nginx配置核心部分,代理、緩存和日誌定義都放在這個模塊中,一般的配置有文件引入,mime-type定義,鏈接超時時間等等。
四、server塊:至關於一臺虛擬主機,一般的配置是虛擬主機的監聽配置、名稱和IP配置。
五、location塊:至關於server的一個指令,主要做用是基於nginx服務器接收到的請求字符串進行匹配,對特定請求進行處理,一般的配置有地址定向、數據緩存和應答控制等等。

經常使用配置詳解:

  • 配置work process數:nginx服務器實現併發處理服務的關鍵,默認爲1
  • 配置文件引入:include file; 可引入其餘nginx配置或第三方配置到主配置文件中,支持相對路徑,引入的文件須要讀寫權限。
  • 配置最大鏈接數:work_connections設置容許每一個work process同時開啓的最大鏈接數,默認值512。
  • 配置鏈接超時時間:keepalive_timeout 默認75s。
  • 配置網絡監聽:listen 可監聽ip、端口和socket
listen 192.168.1.10:8000; #監聽具體的ip和端口鏈接
listen 192.168.1.10; #監聽具體ip的全部端口鏈接
listen 8000; #監聽具體端口的全部IP鏈接,等同於listen *:8000
  • 配置虛擬主機名稱:server_name 是指server塊對外提供的虛擬主機,設置好主機的名稱和配置好DNS,就能夠發送請求了。
  • 配置location塊:匹配相關字符串
「=」 用於嚴格匹配
「~」 用於區分大小寫的正則表達式匹配
「~*」 用於不區分大小寫的正則表達式匹配
「^*」 用於匹配度最高的location匹配
  • 配置網站默認首頁:index file; file能夠爲多個文件名,依次進行匹配,默認爲index.html

4、django框架下nginx和uwsgi搭建

前提:已安裝django框架、nginx和uwsgi相關服務。

nginx相關配置以下:
clipboard.png

uwsgi.py配置以下:
clipboard.png

執行:uwsgi --ini=uwsgi.ini

clipboard.png

http://blog.csdn.net/hanhuili...
http://hai0378.iteye.com/blog...
http://blog.csdn.net/tjcyjd/a...
nginx高性能web服務器詳解(p22-p47)
http://www.runoob.com/django/...

相關文章
相關標籤/搜索