1. 程式人生 > >nginx(一)

nginx(一)

file events 安裝 oca 正則表達式 download 資源 nginx服務 運行

常用功能

  http代理和反向代理,負載均衡,web緩存

安裝

  yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel 編譯安裝的安裝環境

  wget http://nginx.org/download/nginx-1.13.4.tar.gz 下載最新的nginx

  tar zvxf nginx-1.13.4.tar.gz 解壓文件

  技術分享

  目錄結構:

    src :源代碼   man :幫助文檔  html :與啟動有關的兩個靜態文件

    conf:配置文件   auto: 大量腳本文件 與 configure 有關

    configure 自動腳本程序 根據環境生成C代碼 生成編譯代碼需要的Makefile文件

  configure腳本 ./configure --prefix=/data/nginx/nginx --add-module=/data/nginx//nginx-rtmp-module-1.2.0 這裏指定一一個第三方模塊 和安裝位置 這樣我們得到了Makefile文件

  make 編譯

  make install 安裝

  進入安裝目錄查看安裝的文件

  技術分享

  配置文件,日誌文件,命令文件,頁面文件

三 啟動與關閉

  nginx的服務器信號控制

    nginx運行時 會保持一個主進程和一個或多個worker process工作進程 給主進程發信號就可以控制nginx

    nginx -V 顯示版本和配置信息

  nginx 啟動 直接執行 sbin/nginx

  停止:快速停止,平緩停止

    ./sbin/nginx -s stop, quit, reopen, reload 或 kill TREM | INT | QUIT pid

四 nginx的配置

  全局塊:設置一些影響nginx服務器整體運行的配置指令

      運行nginx的用戶,允許worker_process數,日誌文件目錄,配置文件引入

  events塊:影響nginx服務器與用戶的網絡連接,對性能有較大影響

  http塊:服務器配置重要部分

     server塊:完成虛擬主機的配置 本虛擬主機的監聽配置和本虛擬主機的名稱或IP配置

        location塊:配請求字符串進行匹配,特定請求的特殊處理

  具體配置

     1.user user [group] 指定nginx的運行用戶[用戶組] user nobody nobody 或者註釋掉這句 所有用戶都可以運行nginx

     2.worker process nginx並發處理關鍵   worker_processes number | auto

     3.pid file pid文件存放位置

     4. error_log file stderr標準錯誤輸出 | debug | info | notice | warn | error | crit | alert | emerg  

     5. include file 引用配置文件

     6."驚群"問題 accept_mutex on | off 設置為開啟的時候 將會對多個nginx進程接收連接進行序列號,防止多個進程連接爭搶 只能在even 塊中進行配置 默認開啟

     7.multi_accept on | off 是否允許接收多個網絡連接 只能event塊設置 默認關閉

     8.nginx 提供多種事件驅動模型來處理網絡消息 只能event塊設置

        use method; method 內容有:select poll kqueue epoll rtsig eventport /dev/poll

     9.配置最大連接數 worker_connections number; 不能大於操作系統最大文件句柄數量 只能event塊設置

     10.定義mime-type(用於區分網絡資源類型)

       default_type mime-type;

     11.服務日誌 nginx服務應答日誌

       access_log path [format [buffer=size] ]

       log_format name string ...

     12. sendfile 方式傳輸文件

       sendfile on | off 默認關閉 sendfile_max_chunk size ; 0 為無限大 每個worker process 每次調用sendfile傳輸的最大值

     13.keepalive_timeout timeout[ header_timeout 報文keep-Alive 超時設置] 服務器連接保持時間 默認75s

     14. keepalive_requests number; 默認100 單連接請求數上限

     15. 配置網絡監聽

      listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size][deferred][accept_filter=filter][bind][ssl]

        ip地址 端口 標識符 默認511連接掛起最大值 接受緩存 發送緩存 過濾

      listen *:80| *:8000

     16. server_name name; 多個用空格隔開 可以用正則表達式

       server_name myserver.com www.myserver.com

     17. location [=|~|~*|^~] uri {}

       = uri 嚴格匹配 ~ 正則匹配 區分大小寫

       ~* 正則匹配 不區分大小寫 ^~ 不使用正則匹配 uri 進行編碼處理

     18. 配置請求根目錄

      root path; path 為 nginx查找資源的根目錄

     19. alias 改變location接收到的uri的請求路徑 alias path

     20. index file ..; 設置默認首頁 多個文件使用空格分隔

       error_page code ...[=response]uri 路徑根目錄為 nginx 的HTML目錄    

     21. allow address | CIDR | all 多個IP 需要重復設置 CIDR地址 202.80.18.12/25 all 所有客戶端

       deny address |CIDR | all 禁止訪問的客戶端

     22. 密碼配置 auth_basic string | off   

        string 開啟認證 並配置驗證的指示信息

        auth_basic_user_file file file為密碼文件 支持明文或密碼

     

    

      

nginx(一)