成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[nginx文檔翻譯系列]新手指南

phoenixsky / 3000人閱讀

摘要:主進程的目的是為了讀取和評估配置并保持工作進程。默認(rèn)情況下,這個配置文件名為。如果一個塊指令在大括號中有其他的指令,則稱之為上下文如和。放在配置文件最外面的指令的稱之為主文,指令在主文中在中,在中。注意指令已經(jīng)被放置在環(huán)境中。

原文鏈接:http://nginx.org/en/docs/begi...
轉(zhuǎn)自我的github
有些地方覺得翻譯的不是很合理,所以在括號中寫出了原句。
如果有地方翻譯的不合理,請多多指教。

啟動、停止和重啟加載配置

配置文件結(jié)構(gòu)

提供靜態(tài)內(nèi)容

設(shè)置一個簡單的代理服務(wù)器

設(shè)置FastCGI代理

本指南提供了一個關(guān)于nginx基本介紹并描述了一些可以用它完成的簡單的任務(wù)。
我們假設(shè)nginx已經(jīng)安裝在讀者的電腦上。如果還未安裝請看“安裝nginx”章節(jié)。本指南描述如何啟動、停止和重啟它的配置文件,解釋了配置文件的結(jié)構(gòu)并描述了如何設(shè)置nginx如何服務(wù)靜態(tài)內(nèi)容、如何配置nginx作為一個代理服務(wù)器以及如何將它與FastCGI應(yīng)用連接。

nginx有一個主進程和多個工作進程。主進程的目的是為了讀取和評估配置并保持工作進程。
工作進程則做請求的實際處理。nginx采用基本的事件模型和操作系統(tǒng)依賴性機制來有效地分配工作進程之間的請求。
工作進程的數(shù)量可以在配置文件中定義,也可以給出一個固定值,又或者調(diào)節(jié)到CPU內(nèi)核可用的數(shù)量。
參閱:worker_processes

nginx和它的模塊工作方式是在配置文件中定義的。默認(rèn)情況下,這個配置文件名為nginx.conf。放置在/usr/local/nginx/conf,/etc/nginx或者/usr/local/etc/nginx目錄。

啟動、停止和重啟加載配置

要啟動nginx,運行可執(zhí)行文件。一旦nginx被啟動,它可以通過調(diào)用-s參數(shù)來執(zhí)行控制。使用一下命令:

nginx -s signal

signal可以是以下之一:

stop — 快速關(guān)機

quit — 正常關(guān)機

reload — 重新加載配置文件

reopen — 重新打開日志文件

例如,要停止nginx等待工作進程完成服務(wù)當(dāng)前請求的進程,可以執(zhí)行以下命令:

nginx -s quit

執(zhí)行此命令的用戶應(yīng)與啟動nginx的用戶一致。

在配置文件中的修改是不會被應(yīng)用的,直到重新加載的命令被傳送到nginx或者重新啟動。
重新加載配置,執(zhí)行:

nginx -s reload

一旦主進程接收到信號重新加載配置文件,它會檢查新配置文件語法的合法性并嘗試應(yīng)用。

如果成功,主進程會開啟新的工作進程,并發(fā)送消息告訴舊的工作進程,請求他們快速停止。

反之,主進程會回滾配置文件修改的部分,繼續(xù)使用舊的配置。舊的工作進程接收到快速停止的命令,會停止接受新的連接請求,它會繼續(xù)服務(wù)當(dāng)前的請求直到請求被服務(wù)結(jié)束。在那之后,舊的進程會退出。

一個信號也可以在Unix工具的幫助下傳送到nginx進程,如kill工具。在這種情況下,會直接把信號傳送給所指定的進程ID的進程。nginx主進程的進程ID被寫入,默認(rèn)情況下,nginx.pid在/usr/local/nginx/logs或者/var/run目錄下。比如,如果主進程ID是1628,要傳送QUIT信號來停止nginx,執(zhí)行:

kill -s QUIT 1628

為了獲取正在運行的nginx進程列表,可以使用ps工具,比如,以下方式:

ps -ax | grep nginx

有關(guān)發(fā)送信號給nginx的更多信息,請參閱Controlling nginx。

配置文件結(jié)構(gòu)

nginx是由模塊組成的,這些模塊在配置文件中又有指定的指令。
指令被分成簡單指令和塊指令。簡單指令包括名稱和用空格分割的參數(shù)以及用來結(jié)尾的分號(;)。
一個塊指令和簡單指令有相同的結(jié)構(gòu),但是它使用大括號({and})來包圍一系列說明來替代使用分號作為結(jié)尾。
如果一個塊指令在大括號中有其他的指令,則稱之為上下文(如:events,http,server, 和location)。

放在配置文件最外面的指令的稱之為主文,event,http指令在主文中;serverhttp中,
locationserver中。

‘#’開頭的其它行是注釋。

提供靜態(tài)內(nèi)容

Web服務(wù)器一個重要的任務(wù)就是提供文件(如圖像或者靜態(tài)html頁面)。
根據(jù)需求,你將實現(xiàn)一個例子,文件被本地不同的目錄服務(wù)著,如/data/www
包含html文件,/data/images 包含圖片。這需要編輯配置文件,在http塊中設(shè)置server塊。

首先,創(chuàng)建/data/www 目錄并放置index.html文件(文件中可以是任意內(nèi)容)。
然后創(chuàng)建/data/images目錄并放置一些圖片。

接下來,打開配置文件。默認(rèn)的配置文件已經(jīng)包含了幾個server塊的例子,大多數(shù)都被注釋掉了。
現(xiàn)在注釋掉所有的塊,并開始一個新的server塊。

http {
    server {
    }
}

一般情況下,配置文件中包含多個server塊,它們之間以監(jiān)聽的端口號和server name來區(qū)分。
一旦nginx決定了哪個server處理請求,它測試在請求的對server塊內(nèi)定義的位置指令的參數(shù)頭中指定的URI。
(it tests the URI specified in the request’s header against the parameters of the location directives defined inside the server block.)

將location塊添加到server塊中,如下:

location / {
    root /data/www;
}

與請求的URI相比,location塊指定了“/”前綴。為了匹配請求,該URI會被添加到root指令指定的路徑中,
即,到/data/www,在本地文件系統(tǒng)中組成請求文件的路徑。如果有多個匹配的location塊,nginx會選擇前綴最長的。
上面的location塊提供了最短的前綴,如果其他的location塊匹配失敗,這個location塊就會被使用。

接下來添加第二個location塊:

location /images/ {
    root /data;
}

它與帶/images/的請求請求匹配。(location / ,當(dāng)然也匹配,除非有更短的前綴。)
(It will be a match for requests starting with /images/ (location / also matches such requests, but has shorter prefix).)

配置文件中server塊應(yīng)是這樣的:

server {
    location / {
        root /data/www;
    }
    location /images/ {
        root /data;
    }
}

這已經(jīng)是一個可以工作的服務(wù)器配置文件,它監(jiān)聽的是80端口,可在本地通過http://localhost/訪問。
響應(yīng)帶/images/的URI路由請求時,服務(wù)器將會從/data/images目錄發(fā)送文件。
例如,響應(yīng) http://localhost/images/example.png 路由請求,nginx將會發(fā)送/data/images/example.png
文件。如果這個文件不存在,nginx將會發(fā)出404錯誤的響應(yīng)。不帶/images/的URIs請求將會映射到/data/www目錄。
例如,為了響應(yīng)http://localhost/some/example.html請求,nginx將會發(fā)送/data/www/some/example.html文件。

為了應(yīng)用新的配置,如果還沒開啟nginx請開啟,或者向nginx的主進程發(fā)送重新加載的信號,執(zhí)行:

nginx -s reload

萬一沒有像預(yù)期的那樣工作,您可以嘗試在` /usr/local/nginx/logs`或者`/var/log/nginx`目錄中的
access.log和error.log文件找到原因。
設(shè)置一個簡單的代理服務(wù)器

nginx最常用的功能之一就是將其設(shè)置為代理服務(wù)器,這將意味著服務(wù)器接受請求,并將請求傳送給代理服務(wù)器,
然后從代理服務(wù)器取回響應(yīng),并將取回的響應(yīng)發(fā)送給客戶端。

我們將會配置一個基礎(chǔ)版本的代理服務(wù)器,它可以服務(wù)來自本地目錄的圖片文件請求,并將所有其它請求發(fā)送給代理服務(wù)器。
在這個例子中,所有的服務(wù)器都被定義為一個單一的nginx實例。

首先,定義代理服務(wù)器通過在nginx的配置文件增加一個額外的server塊,以下為添加的內(nèi)容:

server {
    listen 8080;
    root /data/up1;
    location / {
    }
}

這是一個簡單的server塊,監(jiān)聽8080端口(此前,listen指令沒有被提起是由于已經(jīng)使用了標(biāo)準(zhǔn)的80端口),并將所有的請求
映射到本地文件系統(tǒng)的/data/up1目錄。創(chuàng)建這個目錄,并將index.html文件放置其中。注意root指令已經(jīng)被放置在server環(huán)境中。
當(dāng)location塊被選中服務(wù)請求時,root指令就會被使用,當(dāng)然不包括自己的root指令。
(Such root directive is used when the location block selected
for serving a request does not include own root directive.)

接下來,使用上一節(jié)服務(wù)器配置并修改它,使其變成一個代理服務(wù)器配置。在第一個location塊中,放置proxy_pass指令與協(xié)議、
名稱和參數(shù)中指定的代理服務(wù)器端口。(在我們的例子中,是http://localhost:8080):

server {
    location / {
        proxy_pass http://localhost:8080;
    }
    location /images/ {
        root /data;
    }
}

我們將會修改第二個location塊,它目前映射所有帶/images/前綴的請求到/data/images
目錄下的文件,是為了使其符合典型的文件擴展的圖像請求。修改的location塊應(yīng)該是這樣:

location ~ .(gif|jpg|png)$ {
    root /data/images;
}

該參數(shù)是一個正則表達(dá)式,匹配所有.gif,.jpg,.png 結(jié)尾的路由。正則表達(dá)式應(yīng)該優(yōu)于~。相應(yīng)的請求都會被映射到
/data/images目錄。

當(dāng)nginx選擇一個location塊服務(wù)一個請求時,它首先檢查location指令的指定前綴,記住location最長的前綴,
然后檢查正則表達(dá)式。如果有一個匹配的正則表達(dá)式,nginx會挑選location塊,否則它會選擇之前的。

因此代理服務(wù)器的配置文件應(yīng)該是這樣的:

server {
    location / {
        proxy_pass http://localhost:8080/;
    }
    location ~ .(gif|jpg|png)$ {
        root /data/images;
    }
}

此服務(wù)器會篩選出以.gif,.jpg,.png 結(jié)尾的請求,并將他們映射到/data/images目錄下(通過添加URI到root指令的參數(shù)上),
然后通過所有其它請求到代理服務(wù)器配置上。

為了應(yīng)用新的配置文件,發(fā)送reload信號到nginx,正如前面的章節(jié)所描述的那樣。

還有更多的指令可用于進一步配置代理鏈接。

設(shè)置FastCGI代理

nginx可用于路由請求FastCGI服務(wù)器,F(xiàn)astCGI服務(wù)器運行各種不同的框架和編程語言,如PHP,建立的應(yīng)用。

最常用與 FastCGI server工作的nginx配置,用fastcgi_pass指令替代了proxy_pass指令,并設(shè)置fastcgi_param
參數(shù)傳遞給FastCGI server。假設(shè)FastCGI server通過localhost:9000可以訪問。
以上一節(jié)代理配置作為基礎(chǔ),用fastcgi_pass指令替換proxy_pass指令,并修改參數(shù)為localhost:9000。在PHP中,
SCRIPT_FILENAME參數(shù)用來確定腳本名,QUERY_STRING參數(shù)用來傳遞請求參數(shù)。配置文件結(jié)果應(yīng)該是:

server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }
    location ~ .(gif|jpg|png)$ {
        root /data/images;
    }
}

這將會設(shè)置一個服務(wù)器,會通過所有的請求,除了靜態(tài)圖像的請求到代理服務(wù)器,通過FastCGI協(xié)議運行在localhost:9000上。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21820.html

相關(guān)文章

  • Nginx

    摘要:此外,其也能夠提供強大的反向代理功能。是由為俄羅斯訪問量第二的站點開發(fā)的,第一個公開版本發(fā)布于年月日。 keepalived+nginx 實現(xiàn)高可用雙機熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個ubuntu16.04虛擬機(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...

    syoya 評論0 收藏0
  • nginx文檔翻譯系列新手指南

    摘要:主進程的目的是為了讀取和評估配置并保持工作進程。默認(rèn)情況下,這個配置文件名為。如果一個塊指令在大括號中有其他的指令,則稱之為上下文如和。放在配置文件最外面的指令的稱之為主文,指令在主文中在中,在中。注意指令已經(jīng)被放置在環(huán)境中。 原文鏈接:http://nginx.org/en/docs/begi...轉(zhuǎn)自我的github有些地方覺得翻譯的不是很合理,所以在括號中寫出了原句。如果有地方翻...

    jk_v1 評論0 收藏0
  • 開發(fā)人員常用框架文檔整理及中文翻譯

    摘要:開發(fā)人員常用的框架文檔及中文翻譯,包含系列文檔,日志,,,,數(shù)據(jù)庫,,等最新官方文檔以及對應(yīng)的中文翻譯。其它如果你有針對此網(wǎng)站好的建議或意見,也歡迎提更多的文檔和更多的文檔版本支持 開發(fā)人員常用的框架文檔及中文翻譯,包含 Spring 系列文檔(Spring, Spring Boot, Spring Cloud, Spring Security, Spring Session),日志(...

    BingqiChen 評論0 收藏0
  • 開發(fā)人員常用框架文檔整理及中文翻譯

    摘要:開發(fā)人員常用的框架文檔及中文翻譯,包含系列文檔,日志,,,,數(shù)據(jù)庫,,等最新官方文檔以及對應(yīng)的中文翻譯。其它如果你有針對此網(wǎng)站好的建議或意見,也歡迎提更多的文檔和更多的文檔版本支持 開發(fā)人員常用的框架文檔及中文翻譯,包含 Spring 系列文檔(Spring, Spring Boot, Spring Cloud, Spring Security, Spring Session),日志(...

    objc94 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<