< 返回新聞公共列表

NGINX教程:命令和配置

發(fā)布時(shí)間:2023-04-11 15:16:44

在下面的教程中,小編將向大家分析下NGINX的基本命令和配置教程。本文主要的內(nèi)容:

1、中央控制單元:nginx.conf

2、管理流程并采用新配置

3、如何規(guī)范靜態(tài)內(nèi)容的傳遞

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


NGINX教程:命令和配置.png


一、中央控制單元:nginx.conf

Nginx是基于事件的,因此與Apache的工作方式不同。單個(gè)請(qǐng)求不被歸類(lèi)為新的工作流程(必須為其加載所有模塊),而是被歸類(lèi)為事件。這些事件分為現(xiàn)有的工作流程,由初級(jí)主流程維護(hù)。nginx.conf配置文件定義了最終存在的工作進(jìn)程數(shù),以及服務(wù)器請(qǐng)求(即事件)如何劃分。我們可以在/usr/local/nginx/conf、/etc/nginx或/usr/local/etc/nginx這些文件中找到它們。


二、管理流程并采用新配置

Nginx安裝后自動(dòng)啟動(dòng),但我們可以使用以下命令啟動(dòng)它:

sudo service nginx start

Web服務(wù)器軟件運(yùn)行后,我們可以通過(guò)使用-s參數(shù)和特定信號(hào)對(duì)進(jìn)程(主要是主進(jìn)程)進(jìn)行尋址來(lái)對(duì)其進(jìn)行管理。對(duì)應(yīng)命令的語(yǔ)法比較不起眼:sudo nginx -s signal

對(duì)于“信號(hào)”,我們有以下四種可能性: 

stop:nginx 立即終止。

quit:nginx 在所有活動(dòng)請(qǐng)求都得到答復(fù)后終止。

reload:重新加載配置文件。

重新打開(kāi):重新啟動(dòng)日志文件。

用于重新加載配置文件的重新加載選項(xiàng)是進(jìn)行更改而無(wú)需終止網(wǎng)絡(luò)服務(wù)器軟件并隨后重新啟動(dòng)它的好方法。無(wú)論如何,要接受更改,我們必須決定是要完全重新啟動(dòng)服務(wù)器還是只需要nginx reload。如果我們選擇后一個(gè)選項(xiàng)并執(zhí)行了以下命令,則主進(jìn)程會(huì)收到將更改應(yīng)用到nginx.conf文件的指令:sudo nginx -s reload

為此,首先檢查語(yǔ)法的準(zhǔn)確性。如果有積極的反饋,新設(shè)置使主流程能夠啟動(dòng)新的工作流程并同時(shí)停止舊流程。如果無(wú)法驗(yàn)證語(yǔ)法,則保留舊的配置狀態(tài)。一旦處理完所有活動(dòng)的請(qǐng)求,所有活動(dòng)的工作流就會(huì)終止。

此外,我們還可以使用諸如kill之類(lèi)的工具來(lái)定位nginx進(jìn)程。我們只需要相應(yīng)的進(jìn)程ID,它可以在/usr/local/nginx/logs目錄或/var/run目錄下的nginx.pid文件中找到。例如,如果主進(jìn)程的ID為1628,則可以使用序列中的kill和quit信號(hào)終止它。

sudo kill -s quit 1628

我們還可以使用服務(wù)程序ps來(lái)顯示所有正在運(yùn)行的nginx進(jìn)程的列表:

sudo ps -ax | grep nginx


三、如何規(guī)范靜態(tài)內(nèi)容的傳遞

我們很可能使用Web服務(wù)器來(lái)傳送圖像、視頻或靜態(tài)HTML內(nèi)容等文件。為了提高效率,最好為不同的內(nèi)容類(lèi)型選擇不同的本地目錄。首先創(chuàng)建一個(gè)示例目錄/data/html并在其中放置一個(gè)示例HTML文檔index.html,然后創(chuàng)建一個(gè)包含一些示例圖像的文件夾/data/images。

對(duì)于下一步,必須通過(guò)在服務(wù)器塊指令中保存這兩個(gè)目錄將這兩個(gè)目錄輸入到配置文件中,而服務(wù)器塊指令又是HTTP塊指令的子指令。默認(rèn)情況下已經(jīng)設(shè)置了各種指令,我們可以先使用 ( off )將其關(guān)閉。然后簡(jiǎn)單地創(chuàng)建一個(gè)單獨(dú)的服務(wù)器塊語(yǔ)句:

http {

  server {

  }

}

在此服務(wù)器塊中,我們應(yīng)該指定包含圖像和HTML文檔的兩個(gè)目錄。對(duì)應(yīng)的結(jié)果如下:

server {

  location / {

    root /data/html;

  }

location /images/ {

    root /data;

  }

}

此配置是偵聽(tīng)端口80并可通過(guò)本地主機(jī)訪問(wèn)的服務(wù)器的默認(rèn)設(shè)置。所有URI以/images/開(kāi)頭的請(qǐng)求現(xiàn)在都將從/data/images目錄請(qǐng)求文件。如果不存在合適的文件,將出現(xiàn)一條錯(cuò)誤消息。所有URI不以/images/開(kāi)頭的nginx事件都被傳遞到/data/html目錄。

不要忘記重新加載或重新啟動(dòng)nginx以應(yīng)用更改。


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

Nginx經(jīng)常被用來(lái)(而不是實(shí)際的服務(wù)器)來(lái)運(yùn)行代理服務(wù)器來(lái)接收傳入的請(qǐng)求。它根據(jù)各種標(biāo)準(zhǔn)過(guò)濾它們,轉(zhuǎn)發(fā)它們,并將相應(yīng)的響應(yīng)傳遞給客戶。緩存代理特別受歡迎。它們直接傳送本地存儲(chǔ)的靜態(tài)內(nèi)容,并且只將所有進(jìn)一步的請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器。防火墻代理也很常見(jiàn),可以過(guò)濾掉不安全或不需要的連接。以下是緩存代理的示例,它從本地目錄檢索請(qǐng)求的圖像并將所有進(jìn)一步的請(qǐng)求轉(zhuǎn)發(fā)到Web服務(wù)器。

第一步,我們需要在nginx.conf中定義主服務(wù)器:

server {

  listen 8080;

  root /data/up1;

location / {

  }

}

與前面的示例相反,使用list指令是因?yàn)槎丝?080(而不是標(biāo)準(zhǔn)端口)將用于傳入請(qǐng)求。我們還應(yīng)該創(chuàng)建目標(biāo)目錄/data/up1并在那里歸檔index.html頁(yè)面。

其次,定義了代理服務(wù)器及其能夠傳送圖像內(nèi)容的功能。這是通過(guò)使用ProxyPass指令執(zhí)行的,包括主要服務(wù)器協(xié)議( http )、名稱 ( localhost )和端口( 8080 )的詳細(xì)信息:

server {

  location / {

    proxy_pass http://localhost:8080;

  }

location ~ \.(gif|jpg|png) $ {

    root /data/images;

  }

}

第二個(gè)location-block指示代理服務(wù)器通過(guò)從本地/data/images目錄中檢索相應(yīng)的內(nèi)容來(lái)回答所有請(qǐng)求,如果它們的URI以典型的圖像文件(例如.gif、.jpg和.png)結(jié)尾。所有其他請(qǐng)求都轉(zhuǎn)發(fā)到主服務(wù)器。與之前的設(shè)置一樣,通過(guò)將重新加載信號(hào)保存到主進(jìn)程或通過(guò)重新啟動(dòng) nginx 來(lái)保存圖像代理。我們可以在官方nginx在線手冊(cè)中找到有關(guān)復(fù)雜代理設(shè)置的更多指令。


以上是NGINX命令和配置教程的介紹,希望能幫助到大家!


/template/Home/Zkeys724/PC/Static