1.nginx的特點:快、擴展性強、可靠性強、內存低消耗、支持高並發、熱部署、開源免費
2.nginx由master進程來管理多個(CPU數)worker進程
3.配置按功能分,有4類:
1)用於調試、定位問題的配置項
2)正常運行必備的配置項
3)優化性能的配置項
4)事件類配置項
4.web服務器配置
4.1虛擬主機與請求的分發:
1)listen:監聽端口【server】
2)server_name:請求中的主機域名【server】
3)server_names_has_buket_size:每個散列桶的內存大小【server、http、location】
4)server_names_has_max_size:分配的內存大小,內存越大沖突越小,檢索越快【server、http、location】
5)server_names_in_redirect:決定是否使用是server_name配置的主機名代替host中的頭部【server、http、location】
6)location:匹配uri,如果匹配,用后面的配置來處理請求【server】
4.2文件路徑的定義:
1)root:定義資源文件目錄的相對於請求的路徑【server、http、location、if】
2)alias:定義資源文件目錄的相對於請求的路徑的別名【location】
3)index:首頁文件【server、http、location】
4)error_page:錯誤碼重定向頁面【server、http、location、if】
5)recursive_error_page:是否允許遞歸定義錯誤頁面【server、http、location】
6)try_files:嘗試訪問uri,如果都不存在則重定向到最后設置的路徑【server、location】
4.3內容及磁盤資源的分配:請求占用內存、磁盤的相關設置
4.4網絡連接的設置:連接、超時、關閉
4.5MIME類型設置:類型type與文件后綴的映射
4.6對客戶端請求限制:請求方法、包體最大值、限速
4.7文件操作優化:IO、緩存
4.8對客戶端請求的特殊處理:HEAD合法性、URI檢查、DNS
4.9ngx_http_core_module模塊提供的變量:
5.負載均衡的配置
5.1.upstream:上游服務器集群【http】
5.2.server:上游服務器名字【upstream】
5.3.ip_hash:根據IP轉發的策略
5.4.記錄日志時支持的變量
6.反向代理的配置
6.1.proxy_pass:反向代理的上行地址。如果轉發要帶上host頭部,需要加上配置:proxy_set_header Host $host;
6.2.proxy_method:轉發時的方法
6.3.proxy_hide_header:轉發時過濾掉某些字段
6.4.proxy_pass_header:與上面配置相反
6.5.proxy_pass_request_body:是否轉發body
6.6.proxy_pass_request_headers:是否轉發header
6.7.proxy_redirect:重定向相關設置
6.8.proxy_next_upstream:發生錯誤時,配置另一台服務器處理請求
后面是nginx的高級部分,介紹了如何開發一個nginx模塊和了解nginx的實現原理,如果有機會的話,再繼續學習:https://www.amazon.cn/dp/B01CHUPLE0/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1536817830&sr=1-1&keywords=nginx
附錄
常用命令:
1.校驗配置文件: nginx -t
2.啟動服務 nginx
3.停止服務:nginx -s quit|stop
4.重啟服務:nginx -s reload
5.(日志移走后)重新寫入新日志:nginx -s reopen
6.顯示命令幫助:nginx -h