真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Nginx上手指南

簡介

10多年的運城網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整運城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“運城網(wǎng)站設計”,“運城網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

通過幾個基本的任務介紹Nginx的基本使用方法。在閱讀之前請先安裝Nginx。本文將簡要介紹Nginx啟動、停止、加載配置文件的方法,介紹配置文件的基本結(jié)構(gòu),最后介紹如何通過配置文件實現(xiàn)靜態(tài)文件服務、反向代理服務以及如何結(jié)合使用FastCGI應用。

Nginx在工作時,有一個主進程以及多個工作進程。主進程的作用主要時管理、加載、分配配置文件,以及管理、調(diào)度所有工作進程。工作進程則主要用來處理外部的請求。Nginx使用基于事件的模型,并且依靠操作系統(tǒng)的底層機制來高效的為工作進程分配任務。工作進程的數(shù)量可以通過配置文件制定,也可以根據(jù)當前CPU的核心數(shù)量以及計算能力有Nginx自動分配(worker_processes)。

Nginx及其各個模塊的工作方式通過配置文件來確定。默認情況下配置文件被命名為nginx.conf。一般存在于/usr/local/nginx/conf/etc/nginx/usr/local/etc/nginx路徑下。

啟動、停止及加載配置

可以通過安裝之后的可執(zhí)行文件來啟動nginx。例如我通過apt-get安裝Nginx,可以直接在具備權(quán)限的環(huán)境中輸入nginx命令即可啟動Nginx。啟動之后我們可以通過-s指令來控制Nginx的行為。主要命令有:

stop——快速停機。 quit——安全停機。 reload——從新加載配置文件(不用停機)。 reopen——從新開啟日志文件。

quit命令用來安全停機,當輸入

nginx-squit

之后。nginx不在接收外部請求,但是他會等待每一個已經(jīng)開始工作的工作進程處理完任務之后再停機。

nginx-sreload

用來加載配置文件,并根據(jù)配置文件的內(nèi)容來從新分配工作進程。如果主進程接收到reload的指令,它會首先檢查配置文件語法的有效性,然后開始嘗試將配置文件的內(nèi)容部署當運行環(huán)境中——主進程會使用新的配置屬性來啟動新的進程,然后將停止的信號發(fā)送給舊進程。這些舊進程一旦處理完當前任務,就會自動推出。如果嘗試部署配置文件的過程出現(xiàn)問題,主進程將會回滾到之前的配置文件,并繼續(xù)使用舊配置文件工作。

當然除了使用Nginx相關的命令,還可以直接使用UNIX的指令來控制進程,比如kill命令。在Nginx工作時,我們可以在/usr/local/nginx/logs或/var/run路徑下找到nginx.pid文件,可以通過他了解Nginx進程被分配的進程ID。還可以通過

ps-ax|grepnginx

了解Nginx的情況,需要了解更多的Nginx控制方法請查看這里。

配置文件結(jié)構(gòu)

Nginx由多個模塊組成,模塊的行為主要由配置文件中的指令來指定。指令分為簡單指令和塊指令,簡單指令由key和value組成,key和value之間由符號分割。塊指令和簡單指令一樣,也是由key和value構(gòu)成,不過塊指令的value部分是一個用{}符號包含起來的塊。如果塊指令中還包含其他指令,我們將其稱之為上下文(context)。在Nginx中常見的上下文有events、http、server和location。如果一個指令沒有包含在任何上下文中,那么認為他輸入main上下文(maincontext),例如events和http屬于main上下文、server屬于http上下文,location則屬于server上下文。此外#之后的內(nèi)容表示為注釋,用于附加說明。

我使用的是apt-get安裝,Nginx被安裝在/etc/nginx下,其他方式的安裝可能略有區(qū)別。在nginx的安裝目錄中配置文件的入口是nginx.conf,打開后可以看到已經(jīng)配置了基礎的http塊:

http{ include/etc/nginx/mime.types; default_typeapplication/octet-stream; #記錄日志的格式,這里用到了代理協(xié)議和IP_REAL模塊的參數(shù) log_formatmain\'$remote_addr-$remote_user[$time_local]"$request"\' \'$status$body_bytes_sent"$http_referer"\' \'"$http_user_agent""$http_x_forwarded_for"\'; access_log/var/log/nginx/access.logmain; sendfileon; #tcp_nopushon; keepalive_timeout65; #gzipon; include/etc/nginx/conf.d/*.conf; }

配置文件通過include指令引入了更多的配置文件,被放置在/etc/nginx/conf.d/路徑下,文件后綴為.conf。打開對應的路徑只有一個default.conf文件,里面對server塊進行了簡單的配置:

server{ #監(jiān)聽端口 listen80; #服務名稱 server_namelocalhost; #路由配置 location/{ root/usr/share/nginx/html; indexindex.htmlindex.htm; } }

后面的案例主要是針對這個server塊進行修改。

靜態(tài)服務器

Nginx的一項重要功能是提供靜態(tài)資源服務,靜態(tài)資源包括html頁面,js、css文件,以及圖片等。下面的案例將通過路徑配置,實現(xiàn)HTML頁面服務以及圖片服務。

下面的例子將頁面文件放置在/data/www路徑下,把圖片資源放置在/data/images路徑下。http上下文中的server塊中的location指令用于配置靜態(tài)資源服務,其結(jié)構(gòu)為:

http{ server{ location/{ # } } }

配置文件中可以包含多個server塊,每個塊可以定義不同的端口、域名、請求頭以及一些正則表達式的規(guī)則。Nginx會根據(jù)配置的規(guī)則以及請求的參數(shù)來確定使用哪個server來響應當前的請求。

我們將location定義為以下樣式:

location/{ #映射路徑 root/data/www; }

location塊以一個“/”參數(shù)開始,他表示URL中前綴為"/"的請求都會由這個location處理。塊中的root指令表示靜態(tài)資源文件是在磁盤系統(tǒng)中,路徑為/data/www

然后再專門定義一個用來處理/images/請求的路徑:

location/images/{ #映射路徑 root/data; }

這個時候,整個server的定義看起來是這樣的:

#server根據(jù)URL映射不同的路徑 server{ location/{ root/data/www; } location/images/{ root/data; } }

然后執(zhí)行

nginx-sreload

重新加載配置文件。此時當我們訪問80端口時(http://localhost/)會映射到/data/www讀取index.html文件。當我們的URL為/images/myImg.png時,會到/data/images/路徑下去讀取myImg.png文件。

Nginx的路徑匹配遵循最長匹配原則,所以當出現(xiàn)/images/在URL中時會匹配到第二個location,而不會去匹配第一個。如果我們輸入的路徑是http://localhost/some/example.html。那么匹配的文件是/data/www/some/example.html。

在運行過程中出現(xiàn)任何問題,到/usr/local/nginx/logs或/var/log/nginx路徑下查看access.log和error.log排查問題。

代理服務

比靜態(tài)資源服務更常用的功能就是代理服務功能。簡單的說就是接收外部發(fā)送的請求,然后根據(jù)一定的規(guī)則將這些需求轉(zhuǎn)發(fā)給指定的服務,然后等待服務的響應并返回給發(fā)送請求的客戶端。下面的案例將會配置一個簡單的Nginx代理服務。

首先在上文的基礎上增加一個監(jiān)聽8080端口的虛擬主機(server):

server{ #監(jiān)聽8080端口 listen8080; #將root指令直接寫在server中 root/data/up1; location/{ } }

這個虛擬服務器將所有獲取的請求都轉(zhuǎn)發(fā)到磁盤路徑/data/up1上,我們在這個路徑下放置一個index.html文件以驗證效果。應該注意到,這里的root指令直接寫在server塊中,而前面的root指令是寫在location中的,這樣的意義是當不需要多個location交替工作時,可以直接將所有請求映射到對應的路徑中去。

然后,我們再配置代理服務。代理服務通過proxy_pass指令來實現(xiàn)。我們修改前文例子中的配置:

server{ #將請求映射到8080端口 location/{ proxy_passhttp://localhost:8080; } #匹配/images/規(guī)則的映射到/data/路徑下。 location/images/{ root/data; } }

然后將第二個location塊的配置進行一些優(yōu)化,讓所有的圖片后綴都映射到存放圖片的目錄。通常使用正則表達式來實現(xiàn)這個功能:

#適配對應的圖片后綴 location~.(gif|jpg|png)${ root/data/images; }

在Nginx中正則表達以~開頭。上面的配置會將對應的圖片請求轉(zhuǎn)發(fā)到/data/images/路徑下。

前面已經(jīng)提到Nginx的匹配規(guī)則稱為“前綴最長匹配規(guī)則”,在融合正則表達式后,他的匹配過程是:

如果有多個location配置,當獲取一個請求時會優(yōu)先從最長的字符串匹配起,并記錄匹配的位置。 然后再檢查正則表達式是否匹配。如果正則表達式匹配則使用該正則對于的location提供服務,如果沒有正則匹配上,則使用之前記錄的位置。

最后,修改之后的配置結(jié)構(gòu)如下:

server{ #代理服務 location/{ proxy_passhttp://localhost:8080/; } #靜態(tài)圖片服務 location~.(gif|jpg|png)${ root/data/images; } }

此時,當后綴為git、jpg、png的請求時,會直接訪問本地磁盤路徑/data/images/去查找對應的圖片。而其他請求則會轉(zhuǎn)發(fā)給本機的8080端口,然后通過前面的虛擬主機訪問本地/data/up1/路徑獲取對應文件。


分享標題:Nginx上手指南
當前路徑:http://weahome.cn/article/cpjdih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部