在下面的教程中,小編將向大家分析下NGINX的基本命令和配置教程。本文主要的內容:
1、中央控制單元:nginx.conf
2、管理流程并采用新配置
3、如何規范靜態(tài)內容的傳遞
4、設置一個(gè)簡(jiǎn)單的nginx代理服務(wù)器
一、中央控制單元:nginx.conf
Nginx是基于事件的,因此與Apache的工作方式不同。單個(gè)請求不被歸類(lèi)為新的工作流程(必須為其加載所有模塊),而是被歸類(lèi)為事件。這些事件分為現有的工作流程,由初級主流程維護。nginx.conf配置文件定義了最終存在的工作進(jìn)程數,以及服務(wù)器請求(即事件)如何劃分。我們可以在/usr/local/nginx/conf、/etc/nginx或/usr/local/etc/nginx這些文件中找到它們。
二、管理流程并采用新配置
Nginx安裝后自動(dòng)啟動(dòng),但我們可以使用以下命令啟動(dòng)它:
sudo service nginx start
Web服務(wù)器軟件運行后,我們可以通過(guò)使用-s參數和特定信號對進(jìn)程(主要是主進(jìn)程)進(jìn)行尋址來(lái)對其進(jìn)行管理。對應命令的語(yǔ)法比較不起眼:sudo nginx -s signal
對于“信號”,我們有以下四種可能性:
stop:nginx 立即終止。
quit:nginx 在所有活動(dòng)請求都得到答復后終止。
reload:重新加載配置文件。
重新打開(kāi):重新啟動(dòng)日志文件。
用于重新加載配置文件的重新加載選項是進(jìn)行更改而無(wú)需終止網(wǎng)絡(luò )服務(wù)器軟件并隨后重新啟動(dòng)它的好方法。無(wú)論如何,要接受更改,我們必須決定是要完全重新啟動(dòng)服務(wù)器還是只需要nginx reload。如果我們選擇后一個(gè)選項并執行了以下命令,則主進(jìn)程會(huì )收到將更改應用到nginx.conf文件的指令:sudo nginx -s reload
為此,首先檢查語(yǔ)法的準確性。如果有積極的反饋,新設置使主流程能夠啟動(dòng)新的工作流程并同時(shí)停止舊流程。如果無(wú)法驗證語(yǔ)法,則保留舊的配置狀態(tài)。一旦處理完所有活動(dòng)的請求,所有活動(dòng)的工作流就會(huì )終止。
此外,我們還可以使用諸如kill之類(lèi)的工具來(lái)定位nginx進(jìn)程。我們只需要相應的進(jìn)程ID,它可以在/usr/local/nginx/logs目錄或/var/run目錄下的nginx.pid文件中找到。例如,如果主進(jìn)程的ID為1628,則可以使用序列中的kill和quit信號終止它。
sudo kill -s quit 1628
我們還可以使用服務(wù)程序ps來(lái)顯示所有正在運行的nginx進(jìn)程的列表:
sudo ps -ax | grep nginx
三、如何規范靜態(tài)內容的傳遞
我們很可能使用Web服務(wù)器來(lái)傳送圖像、視頻或靜態(tài)HTML內容等文件。為了提高效率,最好為不同的內容類(lèi)型選擇不同的本地目錄。首先創(chuàng )建一個(gè)示例目錄/data/html并在其中放置一個(gè)示例HTML文檔index.html,然后創(chuàng )建一個(gè)包含一些示例圖像的文件夾/data/images。
對于下一步,必須通過(guò)在服務(wù)器塊指令中保存這兩個(gè)目錄將這兩個(gè)目錄輸入到配置文件中,而服務(wù)器塊指令又是HTTP塊指令的子指令。默認情況下已經(jīng)設置了各種指令,我們可以先使用 ( off )將其關(guān)閉。然后簡(jiǎn)單地創(chuàng )建一個(gè)單獨的服務(wù)器塊語(yǔ)句:
http {
server {
}
}
在此服務(wù)器塊中,我們應該指定包含圖像和HTML文檔的兩個(gè)目錄。對應的結果如下:
server {
location / {
root /data/html;
}
location /images/ {
root /data;
}
}
此配置是偵聽(tīng)端口80并可通過(guò)本地主機訪(fǎng)問(wèn)的服務(wù)器的默認設置。所有URI以/images/開(kāi)頭的請求現在都將從/data/images目錄請求文件。如果不存在合適的文件,將出現一條錯誤消息。所有URI不以/images/開(kāi)頭的nginx事件都被傳遞到/data/html目錄。
不要忘記重新加載或重新啟動(dòng)nginx以應用更改。
四、設置一個(gè)簡(jiǎn)單的nginx代理服務(wù)器
Nginx經(jīng)常被用來(lái)(而不是實(shí)際的服務(wù)器)來(lái)運行代理服務(wù)器來(lái)接收傳入的請求。它根據各種標準過(guò)濾它們,轉發(fā)它們,并將相應的響應傳遞給客戶(hù)。緩存代理特別受歡迎。它們直接傳送本地存儲的靜態(tài)內容,并且只將所有進(jìn)一步的請求轉發(fā)給服務(wù)器。防火墻代理也很常見(jiàn),可以過(guò)濾掉不安全或不需要的連接。以下是緩存代理的示例,它從本地目錄檢索請求的圖像并將所有進(jìn)一步的請求轉發(fā)到Web服務(wù)器。
第一步,我們需要在nginx.conf中定義主服務(wù)器:
server {
listen 8080;
root /data/up1;
location / {
}
}
與前面的示例相反,使用list指令是因為端口8080(而不是標準端口)將用于傳入請求。我們還應該創(chuàng )建目標目錄/data/up1并在那里歸檔index.html頁(yè)面。
其次,定義了代理服務(wù)器及其能夠傳送圖像內容的功能。這是通過(guò)使用ProxyPass指令執行的,包括主要服務(wù)器協(xié)議( http )、名稱(chēng) ( localhost )和端口( 8080 )的詳細信息:
server {
location / {
proxy_pass http://localhost:8080;
}
location ~ \.(gif|jpg|png) $ {
root /data/images;
}
}
第二個(gè)location-block指示代理服務(wù)器通過(guò)從本地/data/images目錄中檢索相應的內容來(lái)回答所有請求,如果它們的URI以典型的圖像文件(例如.gif、.jpg和.png)結尾。所有其他請求都轉發(fā)到主服務(wù)器。與之前的設置一樣,通過(guò)將重新加載信號保存到主進(jìn)程或通過(guò)重新啟動(dòng) nginx 來(lái)保存圖像代理。我們可以在官方nginx在線(xiàn)手冊中找到有關(guān)復雜代理設置的更多指令。
以上是NGINX命令和配置教程的介紹,希望能幫助到大家!
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動(dòng)站