本篇博客主要有三個部分組成,目的在于讓大家了解ningx的主要功用及作為web server的基礎配置;通過本篇博客能夠讓您對nginx理解更加深入,以便于更好的使用它!
介紹nginx的主要功能
介紹nginx的組成部分
安裝nginx作為web server 服務的基本配置
⊙ 介紹nginx的主要功能 :
nginx是一個自由軟件,開源的,高性能的httpserver,是一個http協議的反代服務器,還是一個郵件 檢索反代服 務 器 , nginx最初的設計是為了解決c10k問題的,處理并發10000個請求;它不依賴與線程處理請求,使用事件驅動模型event,所以他只需要極小的資源,而且以可預測的少量資源就能夠處理大量的請求;國內,淘寶使用的就是基于nginx之上二次研發的Tnginx,如果你能夠熟練的掌握nginx,那么在國內的web運維方面,你會游刃有余!可見nginx的重要性;他的強大在于能夠處理高并發客戶端用戶請求,使用的是 kvent epoll select等機制;
nginx具有高度模塊化,各功能通過模塊來實現,其內部也是通過模塊化流水線裝配以后來實現;在早期的版本中,不支持DSO動態裝卸載機制;所以在安裝nginx的時候需要把使用的模塊直接編譯進去,而現在以支持動態裝卸機制,用戶只需要根據實時的需求添加即可,可謂更加人性化!
nginx的主要功能有一些幾點;(1)靜態的web資源管理器,也是nginx的核心功能,nginx支持高并發,并且性能杠杠滴!無與倫比,對于網站來講,動態資源是隨時有可能改版的,而靜態資源一般不會更改,所以咋生產中,一個web服務器都會使用動靜態資源分離機制,用nginx來做靜態資源的web server,性能是非常好的;(2) 結合FastCGI/uwSGI/SCGI等協議反代動態資源請求;(3)http/https協議的反向代理;(4)imap4/pop3協議的反向代理;(5)tcp/udp協議的請求轉發;
nginx的特性: 異步,事件驅動和非阻塞
⊙ nginx的組成部分:
nginx具有高度模塊化,其主要分類主要有一下幾類:
核心模塊: core module
標準模塊: http module,mail module,stream module
http module :
http web server module:http web服務器模塊
http 反代模塊
mail modules: 郵件模塊
stream modules: 流模塊,提高偽四層負載均衡轉發功能
nginx的主要架構為:
master: 主控進程
worker: 處理用戶的請求
cache loader/manager: 緩存管理進程
我們接下來主要對nginx作為web server 來進行介紹
⊙ 安裝nginx作為web server 服務的基本配置:
我們可以直接到nginx的官方站點 nginx.org 去看一下目前ningx正在維護中的版本,它的次版本號為偶數的是在生產環境中可使用的,一般情況下,對于我們運維人員來講,只要能夠滿足我們在特性方面的需求,并且沒有什么漏洞,老版本的反而更加穩定,可以說我們是求穩不求新!只有在個人實驗中才使用最新的版本;
在這里我是在教室的服務器上直接mget的nginx-1.10.2版本的,并下了一個模塊,如圖0514-01 所示:
示圖:0514-01.jpg
下載到本地目錄下,可以直接使用 yum -y install ./nginx-1.10.2-1.el7.ngx.x86_64.rpm 進行安裝,安裝完成后
我們可以使用 rpm -ql nginx 來查看一下他生產的文件目錄,如0514-02 所示:
示圖:0514-02.jpg
屏幕原因下面還有幾個目錄沒有截出來,其實對于一個服務進程來說他生成的文件并不算多,主要還是因為他高度模塊化的功用;我們可以根據實時需要安裝即可;配置文件在/etc/nginx目錄下,進程則在/usr/lib64目錄下的ningx,還有就是日志文件在/var/log/nginx目錄下,對于一個 web server 來說 日志文件的重要性也是毋庸置疑的;那么我們接下來,對于/etc/nginx下的配置文件進行具體分析:
他的主配置文件是 nginx.conf ,同時 我們也可以在/etc/nginx/conf.d/ 目錄下自定義以 .conf 結尾的配置文件;我們來看一下主配置文件 ningx.conf ; 如圖0514-03 所示
示圖:0514-03.jpg
主要內容可以分為三段:
main block: 主配置段,即為全局配置段;
event {
….
} : 時間驅動相關的配置;
http {
….
}: http/https 協議相關的配置段;
對于mail及stream配置段來說,我們大多數情況下用不到,并且默認配置文件中就沒有給出,所在在這里我們不做說明;
http協議相關的配置結構
http {
…
…:各server的公共配置
server {
…
}:每個server用于定義一個虛擬主機;
server {
…
listen
server_name
root
alias
location [OPERATOR] URL {
…
if CONDITION {
…
}
}
}
那么我們下面就來進行配置一個簡單的nginx web server 并且啟動起來; 首先進入到/etc/nginx/conf.d目錄下 編輯一個以.conf結尾的文件,我們這里取名為test.conf,如圖所示:
示圖:0514-04.jpg
只需如上圖做出編譯及可,我們使用的8080端口,然后定義一個服務器名字,定義根目為/data/www; 并且默認頁面為index.html;然后保存退出使用nginx -t 命令查看格式沒有問題,那么我們就可惜對根目錄進行編譯了,使用命令 mkdir -pv /date/www 創建目錄,然后在目錄中vimindex.html,進行編譯,內容只是簡單的TEST PAGE吧,測試頁面;好了,現在我們可以啟動服務了 ,nginx -s reload命令即可!確定你的防火墻規則和selinux不會成為阻礙,并且使用ss -tnl 命令查看端口8080是否已經打開,然后我們就可以在瀏覽器上放問設定的頁面了!
示圖:0514-05.jpg
至此,一個簡單的nginx web server主頁就設定完成了,當然這只是最簡單,最基礎的,ningx強大的功能還有許多,等待著大家去學習使用,希望此篇博客能夠對您理解ningx起到一定的幫助,哪怕是極其微小的,我也會感到榮幸之至!
此博客僅供個人參考使用!
原創文章,作者:Marui,如若轉載,請注明出處:http://www.www58058.com/75548
nginx,建議編譯使用,性能更高。嘿嘿,有時間互相交流交流,我qq13554667815
@idcdeng:
好的