国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

phoenixsky / 2981人閱讀

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

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

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

配置文件結構

提供靜態內容

設置一個簡單的代理服務器

設置FastCGI代理

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

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

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

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

要啟動nginx,運行可執行文件。一旦nginx被啟動,它可以通過調用-s參數來執行控制。使用一下命令:

nginx -s signal

signal可以是以下之一:

stop — 快速關機

quit — 正常關機

reload — 重新加載配置文件

reopen — 重新打開日志文件

例如,要停止nginx等待工作進程完成服務當前請求的進程,可以執行以下命令:

nginx -s quit

執行此命令的用戶應與啟動nginx的用戶一致。

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

nginx -s reload

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

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

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

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

kill -s QUIT 1628

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

ps -ax | grep nginx

有關發送信號給nginx的更多信息,請參閱Controlling nginx。

配置文件結構

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

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

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

提供靜態內容

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

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

接下來,打開配置文件。默認的配置文件已經包含了幾個server塊的例子,大多數都被注釋掉了。
現在注釋掉所有的塊,并開始一個新的server塊。

http {
    server {
    }
}

一般情況下,配置文件中包含多個server塊,它們之間以監聽的端口號和server name來區分。
一旦nginx決定了哪個server處理請求,它測試在請求的對server塊內定義的位置指令的參數頭中指定的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,在本地文件系統中組成請求文件的路徑。如果有多個匹配的location塊,nginx會選擇前綴最長的。
上面的location塊提供了最短的前綴,如果其他的location塊匹配失敗,這個location塊就會被使用。

接下來添加第二個location塊:

location /images/ {
    root /data;
}

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

配置文件中server塊應是這樣的:

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

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

為了應用新的配置,如果還沒開啟nginx請開啟,或者向nginx的主進程發送重新加載的信號,執行:

nginx -s reload

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

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

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

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

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

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

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

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

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

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

該參數是一個正則表達式,匹配所有.gif,.jpg,.png 結尾的路由。正則表達式應該優于~。相應的請求都會被映射到
/data/images目錄。

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

因此代理服務器的配置文件應該是這樣的:

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

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

為了應用新的配置文件,發送reload信號到nginx,正如前面的章節所描述的那樣。

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

設置FastCGI代理

nginx可用于路由請求FastCGI服務器,FastCGI服務器運行各種不同的框架和編程語言,如PHP,建立的應用。

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

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;
    }
}

這將會設置一個服務器,會通過所有的請求,除了靜態圖像的請求到代理服務器,通過FastCGI協議運行在localhost:9000上。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21820.html

相關文章

  • Nginx

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

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

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

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

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

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

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

    objc94 評論0 收藏0

發表評論

0條評論

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