Nginx翻譯

今天在學習大數據方面的知識,據說Nginx在有些方面比Apahce好,可是也不知道是哪裏好,因而,去官網看看吧。做者是俄國人,天然有俄文,中俄關系這麼好,應該也有中文吧!呀呵,沒有中文啊,咋整呢?
翻譯吧!固然,我也不懂俄文,還好他們有英文版的,OK了,那就試試翻譯一下英文,你們試試看咋樣,行不?
源文出處:
http://nginx.org/en/docs/beginners_guide.htmlhtml

####Beginner’s Guide(新手導引)
nginx啓動時有一個主進程(master process)和一些工做進程(work process)。主進程通常用來讀取和檢測維護配置信息,管理工做進程。而工做進程纔是實際作事處理客戶端請求的傢伙。
nginx使用基於事件的模型和操做系統平臺依託的機制來有效地分發客戶端的請求給工做進程。
工做進程的數量能夠在配置文件設定中,也能夠根據既定的配置項來修正,或者也能夠根據實際CPU核數進行自適應調整
nginx的工做方式和模塊狀況取決於它的配置文件nginx.conf,而它的配置文件通常在/usr/local/nginx/conf,/etc/nginx或者/usr/local/etc/nginx目錄裏nginx

####啓動,中止,重讀配置信息
要啓動nginx,只需執行安裝時自帶的可執行文件就好了。bash

/usr/sbin/nginx複製代碼

一旦啓動了nginx,就能夠經過調用可執行文件並加上參數來控制服務器

/usr/sbin/nginx -s signal複製代碼

signal參數有:微信

stop 快速中止
quit 優雅(從容)地中止
reload 重讀配置信息(平滑重啓)
reopen 重開日誌文件複製代碼

好比,當你想在當前的工做進程(work process)處理完手上的請求後關閉nginx,那麼你可使用下面的命令ide

/usr/sbin/nginx -s quit複製代碼

注意,執行這個命令的用戶要和啓動nginx的用戶是同一個。
若是你修改了配置信息,你必須重啓nginx或者重讀配置信息才能使得剛剛修改的配置生效,重讀配置信息,就執行下面的命令學習

/usr/sbin/nginx -s reload複製代碼

一旦主進程接收到上述信號,則會嘗試解析配置文件的語法並讀取配置信息,若是執行成功,主進程會生成新的工做進程並向舊的工做進程發送中止信號。若是執行失敗,則主進程回滾配置信息,原有的工做進程繼續工做。工做進程在接收到主進程的中止信號後,再也不接收新的鏈接可是會把手上的請求處理完後才中止。大數據

在類Unix系統平臺上也能夠經過kill命令向nginx發送相似的信號,這時的信號通常是直接發送給nginx進程,用進程ID來表示。nginx的主進程ID通常是寫在nginx.pid文件中,所在目錄多是/var/run/(可配置)。好比當前nginx主進程的進程ID是1628,那麼若是我想從容中止掉nginx,那麼我應該這麼作:ui

kill -s QUIT 1628複製代碼

快速地中止nginx:spa

kill -s TERM 1628複製代碼

平滑地重啓nginx:

kill - HUP 1628複製代碼

爲了得到當前運行的nginx的進程的信息,能夠執行下述的命令:

ps -ax | grep nginx複製代碼

更多信息仍是參考Nginx進程控制

####配置文件的結構
nginx也是基於模塊的,而模塊的功能在配置文件中就是所謂的指令(directive)了。
指令包含簡單指令和塊級指令。

簡單指令就是指令名和指令值,中間用空格隔開,使用分號(;)結束。

塊級指令的結構與簡單指令同樣,只是否是使用分號(;)結束,而是使用大括號({})結束。若是塊級指令還能在大括號裏包含簡單指令,那麼此時的塊級指令也有另外一個稱謂:上下文(好比events,http,server和location)。

處在配置文件裏,塊級指令以外的環境稱之爲主上下文(main context)或者叫根上下文。好比events和http指令是處在主上下文裏的,而server指令是處在http上下文裏中,而location指令又是處在server上下文裏中。

主(根)上下文
http{
    server{
       location {
       }
    }
}複製代碼

#(中文不知怎麼稱呼)字符後的都是註釋。

處理靜態內容

Web服務器的一項重要功能就是處理靜態資源(圖片和靜態HTML文本),實現這個也很是的簡單:根據HTTP請求,nginx會指定的資源好比/data/images目錄下的圖片和/data/www/目錄下的html文件取出來交給客戶端。而nginx配置也很是簡單,只需在http配置塊的server塊下,編寫兩個location塊就能夠了
首先,讓咱們建立/data/www目錄,而後在這個目錄下創建index.html文件,裏面隨便寫點什麼內容,好比Hello LiuShiFu.
建立一個/data/images目錄,裏面放一些圖片。
而後,讓咱們打開配置文件。文件中默認是有幾個server塊的配置的,且大部分是被註釋掉的。如今咱們把那些server都註釋掉,從新在http塊下配置一個server塊。

http{
    server{
    }
}複製代碼

通常來講,配置文件會根據監聽端口號或者主機名分爲幾個server塊,而nginx到底把http請求交給哪一個server處理,則是根據請求的URI和server裏location指令的值的匹配來處理的。下面咱們添加一個location

http{
    server{
        location / {
            root /data/www;
            }
    }
}複製代碼

上述location的"/"前綴,是用來匹配http請求URI的。而它會添加到root指定的路徑下,也就是/data/www,以此來造成請求資源(文件)和本地文件系統的對應。若是有多個location和URI匹配的話,那就優先選擇最長匹配的location。咱們寫的location只提供了最短的前綴,長度爲1。因此,只有其餘location匹配失敗的狀況下才能使用這個location。如今,咱們再添加一個location

http{
    server{
        location /images/ {
            root /data;
            }
    }
}複製代碼

上述的location將會匹配一個以/images開始的http請求(location / 也會被匹配可是它是最短的,忽略之)。配置好後,是相似下面的內容

http{
    server{
        location / {
            root /data/www;
            }
        location /images/ {
            root /data;
            }
    }
}複製代碼

如今咱們成功地配置了一個server塊,監聽在80端口,能夠經過http://localhost試試。好比訪問http://localhost/images/a.png,Web服務器將會把/data/images/a.png響應給客戶端,若是該文件不存在,則返回404 Error.若是URI不是/images/這樣的,那就映射到/data/www目錄,好比訪問http://localhost/some/example.html,Web服務器將會把/data/www/some/example.html響應給客戶端。
修改nginx配置文件以後,記得讓主進程從新讀取配置文件才能生效

nginx -s reload複製代碼

若是出錯的話,記得查看access.log和error.log日誌。日誌目錄通常在/usr/local/nginx/log/或者/var/log/nginx/裏。

以爲我分享的文章對你有幫助或者對內容有什麼異議,請聯繫微信公衆號:範小二

相關文章
相關標籤/搜索