Nginx教程[歸檔]

前言

其一,Nginx不是隨隨便便一篇博文就能講清楚的,嚴謹地說,筆者連入門者都算不上;其二,此文系前段日子裏,學習Nginx時的筆記歸檔類博文,還有諸多不完整處,僅供參考。
寫這篇博文的時間點:2019-06-17 22:58,寢室在六樓,剛剛感覺到了地震的餘波。

定義

定義:Nginx是一個最初由俄國程序設計師lgor Sysoev開發的高性能的Web服務器和反向代理服務器,用於HTTP/HTTPS/SMTP/POP3和IMAP協議。
    特性:
        反向代理/負載均衡器
    與Apache的區別
        Nginx                                   Apache
        Nginx是一個基於事件的Web服務器         Apache是一個基於流程的服務器
        全部請求都由一個線程處理                    多線程性。一個線程處理一道請求。
        Nginx避免子進程的概念                   Apache是基於子進程的
        Nginx相似於速度                          Apache相似於功率
        Nginx在負載均衡方面表現較好(用C編寫)      Apache在內存消耗和鏈接上沒有提升
        Nginx支持PHP,對於PHP來講,Nginx更可取 當流量達到進程的極限時,Apache將拒絕新的鏈接
        Nginx只具備核心功能                        Apache支持的PHP/Python/Perl和其餘語言使用插件時,當程序基於Python或Ruby時,很是有用
        Nginx的性能和可伸縮性不依賴於硬件         Apache支持更多的OS
                                                Apache提供了比Nginx更多的功能
        Nginx佔用內存小,但併發能力強               Apache依賴於CPU和內存等硬件組件

Nginx工做原理

+ 默認狀況下,運行中的nginx會包含:1X主進程(master process)和NX工做進程(worker process)
    + 主進程
        充當監控進程,而主進程生成的子進程則充當工做進程。
        主進程充當整個進程組與管理用戶的交互接口,同時對進程進行監護。
        它不須要處理網絡事件,不負責業務執行,只會經過管理worker進程來實現重啓服務,關閉服務,配置文件生效等功能
    + 工做進程
        Nginx子進程充當工做進程,負責完成具體的任務。
        子進程主要負責完成用戶請求與返回用戶數據,以及與後端應用服務器的數據交互等工做。
    + Nginx如何處理一道HTTP請求
        Nginx接收到請求
        首先,根據http請求的「host」頭決定由哪一個虛擬機處理請求
        而後,匹配請求的URI,並根據URI定義規則返回數據。

Nginx目錄解析

"/etc/nginx/"php

  • conf.d/
  • fastcgi_params
  • koi-win
  • nginx.conf
  • scgi_params
  • sites-enabled/
  • uwsgi_params
  • fastcgi.conf
  • koi-utf
  • mime.types #媒體類型
  • proxy_params
  • sites-available/
  • snippets/
  • win-utf

分類對目錄說明

Nginx主配置文件/目錄 | 配置文件

/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.confhtml

CGI配置相關 fastcgi | 配置文件

/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_paramsnginx

編碼轉換映射轉化文件 | 配置文件

/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utfapache

設置HTTP協議的Content-Type與擴展名對應關係:返回數據的類型 | 配置文件

/etc/nginx/mime.types後端

Nginx功能模塊說明

Core

ngx_http_core_module 主要負責Nginx全局應用,針對主配置文件Main區塊和Events區塊
ngx_http_access_module 訪問控制模塊,用來控制網站用戶對Nginx的訪問
ngx_http_gzip_module 壓縮模塊,對Nginx返回的數據壓縮,屬於性能優化模塊
ngx_http_fastcgi_module FastCGI模塊,和動態應用相關的模塊,例如php
ngx_http_proxy_module proxy代理模塊
ngx_http_upstream_module 負載均衡模塊,可實現網站的負載均衡功能及節點的健康檢查
ngx_http_rewrite_module URL地址重寫模塊
ngx_http_limit_conn_module 限制用戶併發鏈接數及請求模塊
ngx_http_limit_req_module 根據定義的key限制Nginx請求過程的速率
ngx_http_log_module 訪問日誌模塊,以指定的格式記錄Nginx客戶訪問日誌等信息
ngx_http_auth_basic_module Web認證模塊,設置Web用戶,經過帳戶,密碼訪問Nginx
ngx_http_ssl_module SSL模塊,用於加密的HTTP鏈接,如:HTTPS
ngx_http_stub_status_module 記錄Nginx基本訪問狀態信息等的模塊tomcat

配置Nginx代理HTTP請求到Apache Tomcat

 

安裝Nginx

sudo apt-get install nginx
    whereis nginx                               # 查看Nginx相關文件目錄

修改默認主頁

sudo nano /etc/nginx/sites-available/default
        # root /var/www/html;
          root /home/jame/www;

【重啓/啓動/關閉】

sudo service nginx start                    #啓動
    sudo /usr/local/nginx/nginx                 #啓動
    sudo service nginx restart                  #重啓
    sudo nginx quit                             #關閉,從容關閉

查看Nginx開啓的進程

ps -ef | grep nginx

重定向

相關文章
相關標籤/搜索