< 返回新聞公共列表

NGINX教程:命令和配置

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

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

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

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

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

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


NGINX教程:命令和配置.png


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

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


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

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

sudo service nginx start

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

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

stop:nginx 立即終止。

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

reload:重新加載配置文件。

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

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

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

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

sudo kill -s quit 1628

我們還可以使用服務程序ps來顯示所有正在運行的nginx進程的列表:

sudo ps -ax | grep nginx


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

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

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

http {

  server {

  }

}

在此服務器塊中,我們應該指定包含圖像和HTML文檔的兩個目錄。對應的結果如下:

server {

  location / {

    root /data/html;

  }

location /images/ {

    root /data;

  }

}

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

不要忘記重新加載或重新啟動nginx以應用更改。


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

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

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

server {

  listen 8080;

  root /data/up1;

location / {

  }

}

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

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

server {

  location / {

    proxy_pass http://localhost:8080;

  }

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

    root /data/images;

  }

}

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


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


/template/Home/Zkeys724/PC/Static