nginx 基本命令和檔案配置
1、nginx 常用命令
在/usr/local/nginx/sbin 目錄下
./nginx -v #檢視nginx 版本
./nginx #啟動命令
./nginx -s stop #關閉命令
./nginx -s reload #重新載入命令
2、nginx 配置檔案簡介
配置檔案一般為 /usr/local/nginx/conf/nginx.conf
全域性塊
從配置檔案開始到 events 塊之間的內容,主要會設定一些影響 nginx 伺服器整體執行的配置指令,主要包括配置執行 Nginx 伺服器的使用者(組)、允許生成的 worker process 數,程式 PID 存放路徑、日誌存放路徑和型別以及配置檔案的引入等。
比如上面第一行配置的 worker_processes 1;
events塊
比如上面的配置:
events {
worker_connections 1024;
}
events 塊涉及的指令主要影響 Nginx 伺服器與使用者的網路連線,常用的設定包括是否開啟對多 work process 下的網路連線進行序列化,是否允許同時接收多個網路連線,選取哪種事件驅動模型來處理連線請求,每個 word process 可以同時支援的最大連線數等。 上述例子就表示每個 work process 支援的最大連線數為 1024. 這部分的配置對 Nginx 的效能影響較大,在實際中應該靈活配置
http塊
這算是 Nginx 伺服器配置中最頻繁的部分,代理、快取和日誌定義等絕大多數功能和第三方模組的配置都在這裡。需要注意的是:http 塊也可以包括 http 全域性塊、server 塊。
①、http 全域性塊
http 全域性塊配置的指令包括檔案引入、MIME-TYPE 定義、日誌自定義、連線超時時間、單連結請求數上限等。
②、server 塊
這塊和虛擬主機有密切關係,虛擬主機從使用者角度看,和一臺獨立的硬體主機是完全一樣的,該技術的產生是為了節省網際網路伺服器硬體成本。
每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當於一個虛擬主機。
而每個 server 塊也分為全域性 server 塊,以及可以同時包含多個 locaton 塊。
1、全域性 server 塊
最常見的配置是本虛擬機器主機的監聽配置和本虛擬主機的名稱或 IP 配置。
2、location 塊
一個 server 塊可以配置多個 location 塊。
這塊的主要作用是基於 Nginx 伺服器接收到的請求字串(例如 server_name/uri-string),對虛擬主機名稱
(也可以是 IP 別名)之外的字串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理。地址定向、資料快取和應答控制等功能,還有許多第三方模組的配置也在這裡進行
3、nginx 配置
1、反向代理配置
案例一:
使用 nginx 反向代理,訪問 www.123.com 直接跳轉到 127.0.0.1:8080
首先在hosts 檔案下面配置 www.123.com的域名對映
後面修改conf配置檔案
案例二:
使用 nginx 反向代理,根據訪問的路徑跳轉到不同埠的服務中
nginx 監聽埠為 9001,
訪問 http://127.0.0.1:9001/edu/ 直接跳轉到 127.0.0.1:8081
訪問 http://127.0.0.1:9001/vod/ 直接跳轉到 127.0.0.1:8082
location 指令說明
該指令用於匹配 URL。
語法如下:
location =[ = | ~ | ~* | ^~] uri {
}
1、= :用於不含正規表示式的 uri 前,要求請求字串與 uri 嚴格匹配,如果匹配
成功,就停止繼續向下搜尋並立即處理該請求。
2、~:用於表示 uri 包含正規表示式,並且區分大小寫。
3、~*:用於表示 uri 包含正規表示式,並且不區分大小寫。
4、^~:用於不含正規表示式的 uri 前,要求 Nginx 伺服器找到標識 uri 和請求字
符串匹配度最高的 location 後,立即使用此 location 處理請求,而不再使用 location
塊中的正則 uri 和請求字串做匹配。
注意:如果 uri 包含正規表示式,則必須要有 ~ 或者 ~* 標識。
2、負載均衡
瀏覽器位址列輸入地址 http://192.168.17.129/edu/a.html,負載均衡效果,平均 8080
和 8081 埠中
(1)準備兩臺 tomcat 伺服器,一臺 8080,一臺 8081
(2)在兩臺 tomcat 裡面 webapps 目錄中,建立名稱是 edu 資料夾,在 edu 資料夾中建立
頁面 a.html,用於測試
(3)、在 nginx 的配置檔案中進行負載均衡的配置
nginx 提供了幾種負載均衡策略:1、輪詢(預設)2、weight 3、ip_hash 4、fair(第三方)
1、輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器 down 掉,能自動剔除。
2、weight
weight 代表權,重預設為 1,權重越高被分配的客戶端越多
指定輪詢機率,weight 和訪問比率成正比,用於後端伺服器效能不均的情況。 例如:
upstream server_pool{
server 192.168.5.21 weight=10;
server 192.168.5.22 weight=10;
}
3、ip_hash
每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決 session 的問題。 例如:
upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}
4、fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
upstream server_pool{
server 192.168.5.21:80;
server 192.168.5.22:80;
fair;
}
3、動靜分離
先在伺服器根目錄新建資料夾
/data/www/
/data/image/
4、nginx 優化策略
需要設定多少個 worker
Nginx 同 redis 類似都採用了 io 多路複用機制,每個 worker 都是一個獨立的程式,但每個進
程裡只有一個主執行緒,通過非同步非阻塞的方式來處理請求, 即使是千上萬個請求也不在話
下。每個 worker 的執行緒可以把一個 cpu 的效能發揮到極致。所以 worker 數和伺服器的 cpu
數相等是最為適宜的。設少了會浪費 cpu,設多了會造成 cpu 頻繁切換上下文帶來的損耗。
設定 worker 數量。
worker_processes 4
#work 繫結 cpu(4 work 繫結 4cpu)。
worker_cpu_affinity 0001 0010 0100 1000
#work 繫結 cpu (4 work 繫結 8cpu 中的 4 個) 。
worker_cpu_affinity 0000001 00000010 00000100 00001000
連線數 worker_connection
這個值是表示每個 worker 程式所能建立連線的最大值,所以,一個 nginx 能建立的最大連線
數,應該是 worker_connections * worker_processes。當然,這裡說的是最大連線數,對於
HTTP 請 求 本 地 資 源 來 說 , 能 夠 支 持 的 最 大 並 發 數 量 是 worker_connections * worker_processes,如果是支援 http1.1 的瀏覽器每次訪問要佔兩個連線,所以普通的靜態訪問最大併發數是: worker_connections * worker_processes /2,而如果是 HTTP 作 為反向代理來說,最大併發數量應該是 worker_connections * worker_processes/4。因為作為反向代理伺服器,每個併發會建立與客戶端的連線和與後端服務的連線,會佔用兩個連線。
相關文章
- nginx配置檔案Nginx
- Nginx 配置檔案Nginx
- NGINX的配置和基本使用Nginx
- Nginx配置檔案解析Nginx
- NGINX基本配置Nginx
- 【Nginx】Nginx虛擬vhost配置檔案Nginx
- Nginx 配置檔案備忘Nginx
- Nginx配置檔案示例解析Nginx
- nginx配置檔案詳解Nginx
- 1.3.nginx配置檔案Nginx
- 我的Nginx配置檔案Nginx
- nginx基本配置使用Nginx
- Nginx的配置檔案詳解Nginx
- Nginx的配置檔案說明Nginx
- Nginx 配置檔案 nginx.conf 詳解Nginx
- Nginx基本安裝配置Nginx
- Nginx 配置檔案 nginx.conf 中文詳解Nginx
- /etc/nginx/nginx.conf配置檔案詳解Nginx
- Nginx配置檔案nginx.conf中文詳解Nginx
- [轉]Nginx 配置檔案nginx.conf的完整配置說明Nginx
- Nginx 配置檔案引數詳解Nginx
- Nginx配置檔案的語法格式Nginx
- Gixy–分析Nginx配置檔案的工具Nginx
- Nginx配置檔案詳細說明Nginx
- 附:Nginx配置檔案nginx.conf中文詳解Nginx
- Nginx配置檔案nginx.conf中文詳解(轉)Nginx
- nginx.conf 配置檔案詳解Nginx
- nginx製作檢查配置bat檔案NginxBAT
- openresty/nginx配置多個conf檔案RESTNginx
- nginx 文件地址及配置檔案入門Nginx
- Nginx配置檔案(反向代理伺服器)Nginx伺服器
- nginx學習(二):初識配置檔案Nginx
- Nginx配置檔案nginx.conf中文詳解(總結)Nginx
- Git基本命令 -- 基本工作流程 + 檔案相關操作Git
- [Nginx] - nginx 基本配置與引數說明(轉)Nginx
- shell讀取配置檔案-sed命令
- 透過nginx配置檔案抵禦攻擊Nginx
- 通過Nginx配置檔案抵禦攻擊Nginx