nginx軟件功能模塊說明
Nginx軟件之所以強大,是因為它具有眾多的功能模塊,下面列出了企業常用的重要模塊。
(1) Nginx核心功能模塊(Core functionality)
nginx核心功能模塊負責Nginx的全局應用,主要對應主配置文件的Main區塊和Events區塊區域,這里有很多Nginx必須的全局參數配置。有關核心功能模塊的詳細信息,請看官網,地址為http://nginx.org/en/docs/ngx_core_module.html。
(2)標准的http功能模塊集合
這些標准的http功能模塊,雖然不是nginx軟件所必需的,但都是很常用的,因此絕大部分默認情況都會自動安裝到 Nginx軟件中(見下表),不建議擅自改動,保留軟件的默認配置就好,除非你明確知道你在做什么,有什么額外影響。
在生產環境中,配置、調整及優化 Nginx軟件,主要就是根據這些模塊的功能修改相應的參數來實現的。通過官方地址http://nginx.org/en/docs/可以查看到上述及更多模塊的詳細使用幫助。
常用的Nginx http功能模塊匯總
Nginx http 功能模塊 模塊說明
ngx_http_core_module 包括一些核心的http參數配置,對應nginx的配置為HTTP區塊部分
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連接,如htts
ngx_http_stub_status_module 記錄Nginx基本訪問狀態信息等的模塊
nginx的目錄結構說明
[root@nginx ~]# tree /application/nginx/ #如果tree命令找不到需要yum install -y tree安裝;
/application/nginx/
├── client_body_temp
├── conf #這是nginx所有配置文件的目錄;
│ ├── fastcgi.conf #fastcgi相關參數的配置文件;
│ ├── fastcgi.conf.default #fastcgi.conf的備份文件;
│ ├── fastcgi_params #fastcgi的參數文件;
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #mime媒體類型;
│ ├── mime.types.default
│ ├── nginx.conf #nginx默認的主配置文件;
│ ├── nginx.conf.default
│ ├── scgi_params #scgi相關參數文件;
│ ├── scgi_params.default
│ ├── uwsgi_params #uwsgi相關參數文件;
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp #fastcgi臨時數據目錄;
├── html #編譯安裝時nginx的默認站點目;
│ ├── 50x.html #錯誤頁面優雅替代顯示文件,例如出現502錯誤時會調用此頁面;
│ └── index.html #默認的首頁文件;
├── logs #nginx默認的日志路徑,報錯錯誤日志及訪問日志;
│ ├── access.log #nginx默認的訪問日志文件;
│ ├── error.log #nginx的錯誤日志文件;
│ └── nginx.pid #nginx的pid文件,nginx進程啟動后,會把所有進程的ID號寫入此文件;
├── proxy_temp #臨時目錄;
├── sbin #nginx的命令目錄,例如nginx的啟動命令nginx;
│ └── nginx #nginx的啟動命令nginx;
├── scgi_temp #臨時目錄;
└── uwsgi_temp #臨時目錄;
9 directories, 21 files
nginx的主配置文件 nginx.conf
nginx的主配置文件位於nginx安裝目錄下的conf目錄中。
[root@nginx nginx]# egrep -v "#|^$" conf/nginx.conf #去掉包含#號和空行的內容; worker_processes 1; #worker進程的數量; events { #事件區塊開始; worker_connections 1024; #每個worker進程支持的最大鏈接數; } #事件區塊結束; http { #http區塊開始; include mime.types; #nginx支持的媒體類型文件; default_type application/octet-stream; #默認的媒體類型; sendfile on; #開啟高效傳輸模式; keepalive_timeout 65; #連接超時; server { #第一個Server區塊開始,表示一個獨立的虛擬主機站點; listen 80; #提供服務的端口默認80; server_name localhost; #提供服務的域名主機名; location / { #第一個location區塊開始; root html; #站點的根目錄,相當於nginx的安裝目錄; index index.html index.htm; #默認的首頁文件,多個使用空格分開; } #第一個location區塊結束; error_page 500 502 503 504 /50x.html; #出現對應的http狀態碼時,使用50x.html會回應客戶; location = /50x.html { #location區塊開始,訪問50x.html; root html; #指定對應的站點目錄為html; } } } #http區塊結束;