1.Nginx的程序架構:
master/worker
一個master進程:
負載加載和分析配置文件、管理worker進程、平滑升級
一個或多個worker進程
處理并響應用戶請求
緩存相關的進程:
cache loader:載入緩存對象
cache manager:管理緩存對象
特性:異步、事件驅動和非阻塞
并發請求處理:通過epoll/select
文件IO:高級IO sendfile,異步,mmap
2. nginx模塊:高度模塊化,但其模塊早期不支持DSO機制;近期版本支持動態裝載和卸載;
模塊分類:
核心模塊:core module
標準模塊:
HTTP modules:
Standard HTTP
modules
Optional HTTP
modules
Mail modules
Stream modules:
傳輸層代理
3rd party modules
nginx的功用:
靜態的web資源服務器;(圖片服務器,或js/css/html/txt等靜態資源服務器)
結合FastCGI/uwSGI/SCGI等協議反代動態資源請求;
http/https協議的反向代理;
imap4/pop3協議的反向代理;
tcp/udp協議的請求轉發;
nginx的安裝配置:
官方的預制包:
http://nginx.org/packages/centos/7/x86_64/RPMS/
Fedora-EPEL:
3.程序環境
配置文件的組成部分:
主配置文件:nginx.conf
include
conf.d/*.conf
fastcgi, uwsgi,scgi等協議相關的配置文件
mime.types:支持的mime類型
主程序文件:/usr/sbin/nginx
Unit File:nginx.service
配置:
主配置文件的配置指令:
directive value [value2
…];
注意:
(1) 指令必須以分號結尾;
(2) 支持使用配置變量;
內建變量:由Nginx模塊引入,可直接引用;
自定義變量:由用戶使用set命令定義;
set
variable_name value;
引用變量:$variable_name
主配置文件結構:
main block:主配置段,也即全局配置段;
event {
…
}:事件驅動相關的配置;
http {
…
}:http/https 協議相關的配置段;
mail {
…
}
stream {
…
}
http協議相關的配置結構
http {
…
…:各server的公共配置
server {
…
}:每個server用于定義一個虛擬主機;
server {
…
listen
server_name
root
alias
location
[OPERATOR] URL {
…
if CONDITION
{
…
}
}
}
4.建一個nginx服務器
5.性能優化,如果一臺主機只服務nginx,綁定cpu,調優先級及最大調優
6.限制條件訪問
在172.16.254.177上訪問 403
7.圖片限制訪問
8.root與alias區別
9.錯誤頁面重新定義
10.認證登錄設置
11.狀態頁訪問
12. 日志定義
13. gzip壓縮模塊
14。ssl 模塊
(1)在另外臺主機上
(2)在另外nginx那臺主機上
(3)在CA主機上
(3)在nginx主機上
15.rewirte模塊
原創文章,作者:yaobinbin,如若轉載,請注明出處:http://www.www58058.com/78228