1、nginx是什麼
- Nginx 是一個「高性能的HTTP和反向代理服務器」,也是一款「輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器」
2、 nginx的下載與安裝
- windows直接在官網 nginx
- mac用戶自行選擇,最好是搭建brew,而後使用brew進行下載,下載連接參考
3、 nginx的配置介紹
- 同一個指令放在不一樣層級的塊中,其做用域也不一樣。
- 若是某個指令在兩個不一樣的層級塊中同時出現,就採用「就近原則」,即以較低層級塊中的配置爲準。 好比,某指令同時出如今http全局塊中和server塊中,而且配置不一樣,則以server塊中的配置爲準。
- 在Nginx配置文件中,每一條指令配置都必須以分號結束。
- user 指令用於指定nginx服務器的用戶(組),全部用戶均可以使用,能夠用
user nobody nobody;
- worker_processes 全局塊,是實現併發處理服務的關鍵所在。
worker_processes number | auto;
auto就是自動檢測
- pid 配置nginx進程的pid存放路徑
pid logs/nginx.pid;
- error_log 存放錯誤日誌的路徑
error_log file | studerr [debug | info | notice | warn | error | crit | alert | emerg];
- include 引入配置文件
include vhost/page.yy.com.conf;
- accept_mutex 設置網絡鏈接的序列化
accept_mutex on | off;
開啓時,就對多個nginx 進程接收鏈接進行序列化,防止多個進程對鏈接的爭搶。在events
塊中設置,默認爲on
- multi_accept on | off; 是否容許同時接收多個網絡鏈接
multi_accept on;
在events
塊中設置,默認爲off
- use method(select、poll、kqueue、epoll、rtsig、/dev/poll、eventport)。在
events
塊中設置
- worker_connections 配置最大鏈接數,默認爲512,
worker_connection 1024;
- default_type 用於配置處理前端請求的MIME類型。
defauly_type mime-type;
默認爲text/plain
access_log path[format[buffer=size]]
對服務日誌的格式、大小、輸出等進行配置.默認為access_log logs/access.log combined;
log_format name string ...;
用於定義服務日誌的格式。 好比log_format main $remote_addr...;
sendfile on | off;
配置容許 sendfile 方式傳輸文件
sendfile_max_chunk 128k;
配置傳輸的文件的最大尺寸
keepalive_timeout timeout[header_timeout]
配置鏈接超時時間,好比keeplive_timeout 120s 100s;
在服務器端與客戶端保持鏈接的時間設置爲120s,發給用戶端的應答報文頭部中Keep-Alive域的超時時間爲100s.
keepalive_requests number;
限制用戶經過某一連接向Nginx服務器發送請求的次數。默認100
listen address/port/unix;
配置監聽IP地址,端口,unix服務。
server_name name ...;
基於名稱的虛擬主機配置,。能夠經過正則表達式進行匹配。匹配的時候遵循必定的規則
server_name 192.168.1.3;
配置基於IP的虛擬主機
root path
配置請求的根目錄
location /data/ {
root /locationtestl;
}
複製代碼
alias path
更改location的URI
location /xhapp/ {
alias F:/data/temp/app_reg/;
}
複製代碼
index file ...;
設置網站的默認首頁
location ~ ^/data/(.+)/web/ $ {
index index.html index.htm;
}
複製代碼
error_page code ... [=[response]] uri
設置網絡錯誤頁面好比: error_page 404 /404.html
location /404.html {
root /myserver/errorpages/
}
複製代碼
allow address | CIDR | all;
容許訪問Nginx的客戶端IP
deny address | CIDR | all;
禁止訪問Nginx的客戶端IP
- Nginx配置在解析的過程當中,遇到deny指令或者allow指令是按照順序對當前客戶端的鏈接進行訪問
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
deny all;
}
複製代碼
auth_basic string | off;
開啓或關閉某認證功能
auto_basic_user_file file;
設置包含用戶名和密碼信息的文件路徑
worker_cpu_affnity 0001 0100 1000 0010;
爲每一個進程分配CPU的內核,前提條件是 worker_processes 4;
設置爲4個服務進程數
send_timeout;
nginx響應客戶端的超時時間,好比 send_timeout 10s;
就是服務器響應客戶端超時時間爲10s,超過10s後就關閉
client_header_buffer_size
設置nginx服務器容許的客戶端請求頭部的緩衝區大小 client_header_buffer_size 4k;
worker_rlimit_sigpending 1024;
設置linux平臺的事件信號隊列長度上限。
kqueue_changes number;
在kqueue事件的驅動模式下,服務器傳遞給內核的事件數量
kqueue_events number;
在kqueue事件的驅動模式下,服務器從內核取到的事件數量
devpoll_changes number;
在dev/poll事件的驅動模式下,服務器傳遞給內核的事件數量
devpoll_events number;
在dev/poll事件的驅動模式下,服務器從內核中取到的事件數量
epoll_events number;
在epoll事件驅動下,nginx與事件以前傳遞事件的數量。
rtsig_singo singo;
rtsig使用的兩個信號的第一天,第二個是在第一個信號的編號上加1
rtsig_overflow_*
nginx的功能
- gizp壓縮
- rewrite功能
- 代理服務
- 緩存機制
- 郵件服務
- 時間管理
- 內存管理
nginx的代理服務
- 代理服務: 也叫正向代理服務
- resolver address:制定dns服務器的ip地址
- resolver_timeout time: 用於解析dns服務器域名解析超時時間
- proxy_pass url: 用於設置代理服務器的協議和地址
nginx的源碼結構
- src目錄下包含core event http mail misc os
- mail 主要是郵件服務相關的
- misc .app文件是測試程序中引用的頭文件是否與c++兼容 .c文件是用來支持Google PerfTools文件的使用
- os 目錄,存在類unix系統
- core
- event
- http