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

資訊專欄INFORMATION COLUMN

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

jk_v1 / 956人閱讀

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

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

啟動(dòng)、停止和重啟加載配置

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

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

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

設(shè)置FastCGI代理

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

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

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

啟動(dòng)、停止和重啟加載配置

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

nginx -s signal

signal可以是以下之一:

stop — 快速關(guān)機(jī)

quit — 正常關(guān)機(jī)

reload — 重新加載配置文件

reopen — 重新打開日志文件

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

nginx -s quit

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

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

nginx -s reload

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

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

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

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

kill -s QUIT 1628

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

ps -ax | grep nginx

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

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

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

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

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

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

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

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

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

http {
    server {
    }
}

一般情況下,配置文件中包含多個(gè)server塊,它們之間以監(jiān)聽的端口號(hào)和server name來(lái)區(qū)分。
一旦nginx決定了哪個(gè)server處理請(qǐng)求,它測(cè)試在請(qǐng)求的對(duì)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;
}

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

接下來(lái)添加第二個(gè)location塊:

location /images/ {
    root /data;
}

它與帶/images/的請(qǐng)求請(qǐng)求匹配。(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)是一個(gè)可以工作的服務(wù)器配置文件,它監(jiān)聽的是80端口,可在本地通過(guò)http://localhost/訪問(wèn)。
響應(yīng)帶/images/的URI路由請(qǐng)求時(shí),服務(wù)器將會(huì)從/data/images目錄發(fā)送文件。
例如,響應(yīng) http://localhost/images/example.png 路由請(qǐng)求,nginx將會(huì)發(fā)送/data/images/example.png
文件。如果這個(gè)文件不存在,nginx將會(huì)發(fā)出404錯(cuò)誤的響應(yīng)。不帶/images/的URIs請(qǐng)求將會(huì)映射到/data/www目錄。
例如,為了響應(yīng)http://localhost/some/example.html請(qǐng)求,nginx將會(huì)發(fā)送/data/www/some/example.html文件。

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

nginx -s reload

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

設(shè)置FastCGI代理

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

最常用與 FastCGI server工作的nginx配置,用fastcgi_pass指令替代了proxy_pass指令,并設(shè)置fastcgi_param
參數(shù)傳遞給FastCGI server。假設(shè)FastCGI server通過(guò)localhost:9000可以訪問(wèn)。
以上一節(jié)代理配置作為基礎(chǔ),用fastcgi_pass指令替換proxy_pass指令,并修改參數(shù)為localhost:9000。在PHP中,
SCRIPT_FILENAME參數(shù)用來(lái)確定腳本名,QUERY_STRING參數(shù)用來(lái)傳遞請(qǐng)求參數(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;
    }
}

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

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

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

相關(guān)文章

  • Nginx

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

    syoya 評(píng)論0 收藏0
  • nginx文檔翻譯系列新手指南

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

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

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

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

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

    objc94 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<