Nginx作為web服務器的使用配置

概述

    Nginx是一款免費開源的web服務器,同時也可以作為http、imap/pop3協議進行反代服務器,本篇介紹一些nginx作為web服務器方面的相關配置,具體包含:

    1、nginx基礎概念介紹

    2、nginx核心模塊配置指令介紹

    3、ngx_http_access_module模塊實現基于IP的訪問控制的配置

    4、ngx_http_basic_module模塊實現基于basic用戶認證的訪問控制的配置

    5、ngx_http_stub_status_module模塊實現web化查看nginx狀態信息的配置

    6、ngx_http_referer_module模塊實現基于引用的訪問控制(防盜鏈)的配置

    7、ngx_http_log_module模塊實現nginx日志管理的配置

    8、ngx_http_gzip_module模塊實現響應報文壓縮傳輸的配置

    9、ngx_http_ssl_module模塊實現nginx支持https協議的配置

    10、ngx_http_rewrite_module模塊實現URL重寫

    11、ngx_http_fastcgi_module模塊實現nginx與PHP的結合

    12、實戰一:LNMP部署wordpress

    13、實戰二:LNMP部署phpMyAdmin,并實現https的訪問
                

               

第一章    nginx基礎概念介紹

    1、IO基礎概念

        同步/異步:關注的是消息通知機制,也就是被調用者在任務完成后是否通知調用者任務完成的消息

            同步:等待對方返回消息

    異步:被調用者通過狀態、通知或回調方法,通知調用者被調用者的運行狀態

        阻塞/非阻塞:關注調用者在等待結果返回之前所處的狀態

            阻塞:調用者在等待被調用者的結果返回之前,會被掛起,不能做其他任何事情,就是阻塞

            非阻塞:調用者在等待被調用者的結果返回之前,不會被掛起,可以做其他任務,就是非阻塞

        

    2、常見IO模型

        I/O類型:

            網絡IO:本質是socket讀取

            磁盤IO:數據流

    

        無論是網絡IO還是磁盤IO都會經歷兩個階段:

            第一步:等待數據準備完成階段。也就是數據首先會從SOCKET或磁盤上加載到內核的內存空間(內核緩沖區)

            第二步:數據從內核復制到進程。數據從內核內存的緩沖區,復制到用戶空間的進程的內存中

    

        阻塞型IO:

            從請求發起到請求結束,整個過程都是出于阻塞狀態;

        非阻塞型IO:

            在等待數據準備階段,也就是從磁盤到內核內存這個階段是處于盲等待階段,請求方不斷的詢問被請求方的資源是否準備好了。在第2階段,也就是請求的內容從內核內存復制到用戶內存時,是處于阻塞狀態的。

        復用型IO:

            在準備階段,請求是交給一個中間代理,在內核中默認已經提供,一個是基于BSD的select(),一個是基于sysv風格的poll(),此種IO模型下,請求不直接發送給被請求方,而是發送給select()這種代理。故在第1階段,是阻塞在代理上,而不是服務器上,這樣就可以同時發起多個IO請求,在第二解段,也是出于阻塞狀態

        事件驅動IO:

            第一階段是非阻塞的,但是會有通知機制,也就是說請求的資源準備好了之后,會通知請求者,進行第二步的操作;第二步依舊是阻塞狀態

        異步IO:整個過程都是非阻塞的

        1圖片1.png

      

    3、nginx的程序架構

        blob.png

            

        

        一個master進程,可生成一個或多個worker進程

    master:加載配置文件,管理worker進程,平滑升級,…

    worker:http服務,http代理,fastcgi代理…     

        緩存相關的進程:

            cache loader:載入緩存對象

            cache manager:管理緩存對象

      

    4、nginx的模塊分類

        核心模塊:core module,nginx實現功能的核心模塊

        標準模塊(自帶模塊):nginx自帶的模塊

            標準http模塊

            可選http模塊

            郵件相關模塊

            stream模塊(1.9版本之后才引入的,用于支持tcp、udp協議的反代模塊)

        第三方模塊:需要自己額外編譯安裝添加的第三方模塊

        一般模塊會有專用該模塊的配置指令,還會引入相關配置的變量

     

      

第二章    nginx核心模塊配置指令介紹

      

    1、nginx核心模塊配置指令介紹

    core.png

     

    2、調整以下參數的值,驗證配置是否有效

        worker_processes 數字|auto ;

        worker_cpu_affinity CPUMASK1 [CPUMASK2] …;

        worker_priority 數字;

    blob.png

    blob.png

  

    3、定義基于名稱,端口,ip的虛擬主機

    blob.png

    blob.png

    blob.png

    blob.png

    4、location中alias和root的定義和使用

    blob.png

    blob.png

    blob.png

    blob.png

    blob.png

   

第三章    ngx_http_access_module模塊實現基于IP的訪問控制的配置

   

    1、access模塊相關配置指令介紹

    access.png

    2、測試基于IP的訪問控制

    blob.png

    blob.png

    blob.png

     

第四章    ngx_http_basic_module模塊實現基于basic用戶認證的訪問控制的配置

     

    1、basic認證相關配置指令介紹

    basic.png

    2、測試基于basic用戶認證的訪問控制

    blob.png

    blob.png

    blob.png

    blob.png      

    blob.png

    blob.png

    blob.png

        

第五章    ngx_http_stub_status_module模塊實現web化查看nginx狀態信息的配置

     

    1、stub_status模塊相關配置參數介紹

    status.png

    

    2、status頁面的配置    

    blob.png

    blob.png

            

第六章    ngx_http_referer_module模塊實現基于引用的訪問控制(防盜鏈)的配置

     

    1、referer模塊相關配置參數介紹

    referer.png

    

    2、定義referer相關示例

    blob.png

    blob.png

        

第七章    ngx_http_log_module模塊實現nginx日志管理的配置

     

    1、log模塊相關配置參數介紹

    log.png

        

     

第八章    ngx_http_gzip_module模塊實現響應報文壓縮傳輸的配置

     

    1、gzip模塊相關配置參數介紹

    gzip.png

     

第九章    ngx_http_ssl_module模塊實現nginx支持https協議的配置

     

    1、ssl模塊相關配置參數介紹

    ssl.png

       

第十章    ngx_http_rewrite_module模塊實現URL重寫

     

    1、rewrite模塊相關配置參數介紹

    rewrite.png

    2、rewrite示例:

    blob.png

    blob.png     

    blob.png

      

第十一章    ngx_http_fastcgi_module模塊實現nginx與PHP的結合

     

    1、fastcgi模塊相關配置參數介紹

    fastcgi.png

     

第十二章    實戰一:LNMP部署wordpress

    

    1、環境介紹:

        CentOS7.2系統,地址為10.1.32.72

        rpm包安裝Nginx-1.10版本

        yum安裝mariadb-server以及php-fpm

    2、安裝相關程序包

    blob.png

    blob.png

    

    3、按需修改php-fpm配置文件,mariadb配置文件,啟動php-fpm和mariadb

    blob.png

    blob.png

    4、修改nginx配置文件,啟動nginx

    在nginx配置文件中http段加入如下配置,新建一個虛擬主機

    1477487179627310.png

    1477487323178267.png    

      

    5、提供wordpress程序包,創建wordpress數據庫,授權一個數據庫用戶,web初始化安裝wordpress

    blob.png    

    blob.png

    blob.png

    blob.png

第十三章    實戰二:LNMP部署phpMyAdmin,并實現https的訪問

    1、環境說明

        基于上個實驗的部署的LNMP平臺,證件一個基于ssl的虛擬機,然后將phpMyadmin部署在該ssl虛擬機內部

    2、利用本機作為私有CA服務器,頒發證書

    blob.png

    blob.png

    blob.png

    blob.png    

     

    3、修改nginx配置文件,新建一個https虛擬主機

    ssl示例.png

    blob.png

    

    4、提供phpMyadmin,然后web化安裝

    blob.png

    blob.png

    blob.png

原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/54617

(0)
M20-1倪文超M20-1倪文超
上一篇 2016-10-27 10:15
下一篇 2016-10-27 11:19

相關推薦

  • LVS負載均衡集群詳解

    一、LVS概述  1.LVS:Linux Virtual Server          四層交換(路由):根據請求報文的目標IP和目標PORT將其轉發至后端主機集群中的某臺服務器(根據調度算法);      …

    系統運維 2016-04-30
  • 超級用戶切換普通用戶后如何重置root密碼

    今天在使用su命令切換root用戶和普通用戶使用中不小心改了root密碼,在普通用戶條件下怎么也切換不到root用戶,于是通過搜索和嘗試終于改了root密碼,現以centos7為例總結如下: 1、首先進入開啟菜單,按下e鍵進入編輯模式,找到ro那一行,將ro改為rw,在語言后面加上init=/bin/sh 2、根據提示按下ctrl-x鍵(注意選中x) 3、嘗…

    Linux干貨 2017-03-27
  • ping命令的部分用法

    Linux系統的ping命令是常用的網絡命令,它通常用來測試與目標主機的連通性,我們經常會說“ping一下某機器,看是不是開著”不能打開網頁時會說“你先ping網關地址192.168.1.1試試”。它通過發送ICMP ECHO_REQUEST數據包到網絡主機(send ICMP ECHO_REQUEST to&nbsp…

    Linux干貨 2017-07-30
  • 系統用戶基本信息

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d" " -f1 | sort -u who | cut -d" " -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 who | tail -1 3、取出當前系統上被用戶當作其默認she…

    Linux干貨 2016-11-20
  • yum相關知識及源碼編譯安裝http

    二.源碼編譯安裝http 獲得源碼,將源碼放在/usr/local/src下,并將其解壓縮到此目錄下 進入解壓縮文件下,查看INSTALL文件 文件內容如下 黃色區域即為安裝步驟 在當前目錄下執行./configure –prefix=/usr/local/appach2 編譯  make make install  把目標文…

    系統運維 2016-08-24
  • sed之高級命令的解析

                sed工作機制中另一個邏輯空間用于作為模式空間的好幫手,就是叫保持空間(hold space),在模式空間中處理一行內容會繼續處理下一行,那么對于處理過的行可能還有其他處理,因此可以先把處理好的數據存放在hold s…

    Linux干貨 2016-08-08
欧美性久久久久