< 返回新聞公共列表

NGINX教程:命令和配置

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

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

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

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

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

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


NGINX教程:命令和配置.png


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

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


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

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

sudo service nginx start

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

對于“信號”,我們有以下四種可能性: 

stop:nginx 立即終止。

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

reload:重新加載配置文件。

重新打開:重新啟動日志文件。

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

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

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

sudo kill -s quit 1628

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

sudo ps -ax | grep nginx


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

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

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

http {

  server {

  }

}

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

server {

  location / {

    root /data/html;

  }

location /images/ {

    root /data;

  }

}

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

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


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

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

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

server {

  listen 8080;

  root /data/up1;

location / {

  }

}

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

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

server {

  location / {

    proxy_pass http://localhost:8080;

  }

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

    root /data/images;

  }

}

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


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


/template/Home/Zkeys724/PC/Static