Nginx 功能概述與基礎應用!


       本篇博客主要有三個部分組成,目的在于讓大家了解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所示:

            Nginx 功能概述與基礎應用!                                                                               示圖:0514-01.jpg


           下載到本地目錄下,可以直接使用 yum -y install ./nginx-1.10.2-1.el7.ngx.x86_64.rpm進行安裝,安裝完成后
                 我們可以使用 rpm -ql nginx 來查看一下他生產的文件目錄,如0514-02所示:

                Nginx 功能概述與基礎應用!                                                    示圖: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所示

         Nginx 功能概述與基礎應用!                                                          示圖: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,如圖所示:

          Nginx 功能概述與基礎應用!                                                                 示圖: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是否已經打開,然后我們就可以在瀏覽器上放問設定的頁面了!


 Nginx 功能概述與基礎應用!
                                  示圖:0514-05.jpg    


           至此,一個簡單的nginx web server主頁就設定完成了,當然這只是最簡單,最基礎的,ningx強大的功能還有許多,等待著大家去學習使用,希望此篇博客能夠對您理解ningx起到一定的幫助,哪怕是極其微小的,我也會感到榮幸之至!

          此博客僅供個人參考使用!

原創文章,作者:Marui,如若轉載,請注明出處:http://www.www58058.com/75548

(0)
MaruiMarui
上一篇 2017-05-14 16:03
下一篇 2017-05-14 20:10

相關推薦

  • Linux 發展史

    摘要:     Linux是一款基于Unix的服務端操作系統,目前已廣泛應用于國內外的服務器端操作系統領域,其開源性是其獲得及其快速的發展,目前至少已有數百種發行版本。 本文主要講述了linux的系統簡介、發展歷程和Linux的發行版;     1、Linux的哲學思想:    &nbsp…

    Linux干貨 2016-10-19
  • 設計模式 ( 十三 ) 命令模式Command(對象行為型)

    1.概述         在軟件設計中,我們經常需要向某些對象發送請求,但是并不知道請求的接收者是誰,也不知道被請求的操作是哪個,我們只需在程序運行時指定具體的請求接收者即可,此時,可以使用命令模式來進行設計,使得請求發送者與請求接收者消除彼此之間的耦合,讓對象之間的調用關系更加靈活。  例子1:電視機遙控器…

    Linux干貨 2015-07-16
  • 計算機基礎及Linux基礎概述

    馬哥教育網絡班23期+第1周課程練習 計算機基礎及Linux基礎概述 一、計算機組成及其功能 1.1、概述     計算機,computer 我們在中國都稱它為電腦,其實我們個人使用的計算機只是計算機家族的一部分,計算機分很多種,小型機,中型機,大型機,工作站,還有PC機,等等,其實我們家庭中使用的只能算是PC機,其實…

    Linux干貨 2016-09-15
  • 集中練習6-bash腳本

    集中練習6-bash腳本

    Linux干貨 2017-12-05
  • linux 學習(2)

    1 linux 常見的文件管理命令都有哪些?其常用的使用方法。 ls 文件列出命令   常見選項  -l 顯示長文本信息          -d 顯示當前目錄信息          -a 顯示所有文件信息     &nb…

    Linux干貨 2016-10-09
  • 互聯網安全之sudo使用指南

    一、前言 sudo是什么? sudo是系統管理指令;由于root用戶權限過大,在實際生產過程中很少使用root用戶直接登錄系統,而是使用普通用戶登錄系統;但是如果普通用戶要對系統進行日常維護操作時需要su到root用戶,為了提高安全性,可以使用sudo授權某一用戶在某一主機以某一用戶身份運行某些命令;從而減少root用戶密碼知曉人,提高系統安全性。 &nbs…

    2015-06-23

評論列表(2條)

  • idcdeng
    idcdeng 2017-06-05 23:10

    nginx,建議編譯使用,性能更高。嘿嘿,有時間互相交流交流,我qq13554667815

    • Marui
      Marui 2017-06-06 11:06

      @idcdeng
      好的

欧美性久久久久