nginx使用說明 二 新手指南

2022-05-29 11:36:12 字數 3967 閱讀 2098

nginx包含乙個主程序和多個工作程序。主程序讀取並處理配置,維護工作程序。工作程序負責實際的請求處理。nginx使用事件驅動和作業系統相關的機制,可以有效的在工作程序間分配請求。工作程序的數量可以在配置檔案裡設定,可以配置為固定的個數,也可以根據cpu的核心數進行動態適應。

預設情況下,配置檔案為nginx.conf,一般路徑為/usr/local/nginx/conf,/etc/nginx, 或/usr/local/etc/nginx。像上一節我們設定的安裝路徑,配置檔案放在/usr/local/nginx/conf。

執行可執行檔案啟動nginx,如

[root@localhost nginx]# /usr/local/nginx/sbin/nginx

啟動後,可以用如下命令操作nginx

nginx -s signal

signal可以是如下命令

stop:快速停止

quit:安全退出

reopen:開啟日誌檔案

如果要等nginx工作程序處理完當前的所有請求後才停止,應該使用如下命令:

nginx –s quit

nginx –s reload

也可以通過unix的命令工具直接傳送訊號給nginx的程序id,如kill命令。nginx的主程序id預設配置在/usr/local/nginx/logs或/var/run目錄下的nginx.pid檔案中。假設主程序id是1628,要使用quit命令讓nginx安全退出,執行如下命令:

kill –s quit 1628

使用ps命令獲取nginx所有執行的進行

ps -ax | grep nginx

nginx的各模組由配置檔案中的指令集控制。指令集分為簡單指令和塊指令,簡單指令由名稱和引數組成,中間以空格分格,以分號(;)結束,塊指令的結構和簡單指令相同,但以大括號包圍的附加指令集結束。塊指令的大括號裡可以包含其它指令,稱作上下文(例如:events,http,server和location)。

放置在所有上下文以外的指令都被認為是在主上下文中。主上下文包含events和http指令,http包含server,server包含location。

注釋每行使用#開頭。

web伺服器的乙個重要作用就是分配靜態檔案(如和html檔案)。可以實現乙個示例,根據請求從不同的目錄分配檔案:/data/www和/data/images。修改配置檔案,在http塊中設定乙個server塊,在server塊包含兩個locaton塊。

首先,建立/data/www目錄,新增html.index檔案,內容自己定義,再建立/data/images目錄,放幾張。

接著開啟配置檔案,預設已經包含一些已注釋的示例。先不管注釋的內容,新新增乙個server塊,

配置檔案可以包含多個server塊,通過監聽埠(listen)和服務名稱(server_name)區分,通過請求訊息頭中的uri匹配server中loation的引數來確定哪個server塊處理請求。

在server塊中新增如下指令:

location /{

root /data/www

location塊定義」/」字首與請求的uri作比較,匹配的請求uri會被新增到root指令定義的路徑之後,也就是/data/www,組成請求檔案的本地路徑。如果有多個location塊匹配,nginx選擇其中字首最長的乙個。上邊的locatoin塊使用了長度最短的字首,所以如果其它location無法匹配,都會使用這個location塊。

新增第二個location塊:

location /images/{

root /data;

匹配以/images/開頭的所有請求。

配置檔案server的最終內容如下:

server{

location /{

root /data/www;

location /images/{

root /data;

配置監聽80埠,並且可以通過http://localhost/訪問。uris以/images/開頭的請求,伺服器從/data/images傳送檔案,例如對應請求http://localhost/images/example.png,nginx會傳送檔案/data/images/example.png,如果檔案不存在,nginx傳送乙個404的響應異常。不以/images/開頭的請求會對映到/data/www目錄。例如請求http://localhost/some/example.html會傳送檔案/data/www/some/example.html。

重啟nginx或傳送reload命令以使新配置生效:

nginx –s reload

如果出現異常,可以在access.log和error.log中查詢原因,它的目錄是/usr/local/nginx/logs或/var/logs/nginx

nginx經常用作**伺服器。**伺服器接收請求,把它們傳遞到被**伺服器,獲取響應,並返回到客戶端。

我們將要配置乙個**伺服器,從本地目錄處理檔案的請求,其它請求傳送到被**伺服器處理。在本例中,兩個伺服器都被定義在同乙個nginx例項中。

首先,定義被**伺服器,在配置檔案中再新增乙個server塊,內容如下:

server{

listen 8080;

root /data/up1;

location /{

這個服務配置監聽80埠,對映所有請求到/data/up1目錄。這裡的root指令放在server上下文中,當location指令中沒有root指令時,可以像這樣配置root指令。

修改第二個location塊,讓它只匹配特定副檔名的。

引數是乙個正規表示式,匹配所有以.gif,.jpg或.png結尾的uris,正規表示式必須以~開始,與該配置匹配的請求會被對映到/data/images目錄。

nginx處理請求時,首先檢查location指令定義的最長字首,與正規表示式比較,如果匹配,nginx使用這個location,否則使用其它指令定義。

**伺服器的最終配置如下:

伺服器會過濾以.gif,.jpg或.png結尾的請求,把它們對映到/data/images目錄,傳遞其它請求到**伺服器。

nginx可以將請求路由到各種框架和語言開發的fastcgi應用伺服器,如php。

最基本的,將proxy_pass指令改為fastcgi_pass指令,用fastcgi_param設定傳到fastcgi伺服器的引數。假設fastcgi伺服器的訪問位址是localhost:9000,用上一節的**伺服器的配置,把proxy_pass改為fastcgi_pass,更新引數值為localhost:9000。在php中,script_filename引數用來過確定指令碼名稱,query_string用來傳遞請求引數,最終配置檔案如下:

通過該配置,除了靜態檔案,所有請求都通過fastcgi協議被路由到**伺服器上localhost:9000。

nginx 新手指南

官網 可以使用 nginx 的幫助命令檢視可以使用的命令 nginx h 或者 nginx root gray sbin nginx h nginx version openresty 1.11.2.2 usage nginx hvvttq s signal c filename p prefix ...

nginx新手指南

記錄nginx在centos上的安裝,開啟過程。其實也就是翻譯兩篇nginx上的文件的部分。install beginner s guide nginx name nginx repo baseurl gpgcheck 0 enabled 1 usr sbin nginx 這是開啟nginx的檔案 ...

NGINX 使用說明

nginx在centos上操作有關命令,以前的啟動方法無法實現 services nginx start or systemctl start nginx 1.查詢安裝路徑 whereis nginx2.執行啟動命令 nginx 啟動 nginx s stop 停止 nginx s quit ngi...