一、nginx優點
1.反向代理
1、正向代理: 客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容回傳給客戶端,
graph LR client--req-->ClientProxy ClientProxy--resp-->client ClientProxy--req-->server server--resp-->ClientProxyserver不知道client是誰
2、反向代理:客戶端請求服務器,中間也是經過一個代理服務器,客戶端訪問代理服務器就好像訪問目標服務器一樣,同時代理服務器將請求轉發到后端具體服務器,
graph LR client--req-->ServerProxy ServerProxy--resp-->client ServerProxy--req-->Server01 Server01--resp-->ServerProxy ServerProxy--req-->Server02 Server02--resp-->ServerProxy ServerProxy--req-->Server03 Server03--resp-->ServerProxy客戶端不知道自己具體訪問的服務器是誰
3、總結 https://blog.csdn.net/wnvalentin/article/details/88171847
正向代理是對客戶端的代理,由客戶端設立,客戶端了解代理服務器和目標服務器,但目標服務器不了解真正的客戶端是誰;使用正向代理可達到 突破訪問限制、提高訪問速度、對服務器隱藏客戶端IP等目的;
反向代理是對服務器的代理,由服務器設立,客戶端不了解真正的服務器是誰,使用反向代理可達到負載均衡、保障服務端安全、對客戶端隱藏服務器IP等目的,
2.負載均衡
集群平攤請求壓力
負載均衡策略:
- 輪詢 :平均訪問(默認方式)
upstream myserver{
ip_hash;
server 192.168.17.129:8000;
server 192.168.17.129:8001;
server 127.0.0.1:7071 down; #不參與負載均衡
server 127.0.0.1:7070 backup; #備份server 只有其他都忙了才訪問
}
- 權重
upstream myserver{
server 192.168.17.129:8000 weight 1;
server 192.168.17.129:8001 weight 2;
}
- IP hash :每個ip分配一個固定的服務器
upstream myserver{
ip_hash;
server 192.168.17.129:8000;
server 192.168.17.129:8001;
}
- URL hash
upstream myserver{
server 192.168.17.129:8000;
server 192.168.17.129:8001;
hash $request_uri;
hash_method crc32; #hash 方法
}
- fair 根據回應時間來訪問,哪個機器回應快就哪個
upstream myserver{
server 192.168.17.129:8000;
server 192.168.17.129:8001;
fair;
}
server模塊的配置:
server{
listen 80;
server_name 192.168.17.129;
location /{
proxy_pass http://myserver; #前面upstream的名字
}
}
3.動靜分離
動態頁面和靜態頁面分開部署,把動態頁面的服務器性能弄的好一些,靜態頁面的服務器可以差一些,并且可以設定快取,
二、基本命令
-
nginx 啟動
-
nginx -v版本號
-
nginx -s stop 關閉
-
nginx -s reload 重新加載組態檔
三、組態檔
1、root和alias的區別
- root:【指定機器根路徑】
location /appImg/{
root /home/nginx;
}
這個location相當于訪問服務器上的檔案路徑: /home/nginx/appImg/ ,
- alias:【別名】
location /appImg/{
alias /home/nginx/;
}
這個alias代表了/appimg/ = /home/nginx/
3、worker_connections 和 worker_processes
設定并發數和連接數
連接數:
靜態資源:2
graph LR client--請求靜態資源1-->nginx nginx--回傳靜態資源2-->client反向代理:4
graph LR client--請求動態資源1-->nginx nginx--請求后端服務2-->server server--回傳資料3-->nginx nginx--回傳動態資源4-->client四、基本原理
- master管理者:管理監控
- worker作業者 :連接
每個worker都維護一個執行緒處理請求
worker_processes設定的數量和cpu核數最好相等,每個worker都是一個獨立的行程
3個worker
root 20789 1 0 10:19 ? 00:00:00 nginx: master process nginx
nobody 22281 20789 0 10:47 ? 00:00:00 nginx: worker process
nobody 22282 20789 0 10:47 ? 00:00:00 nginx: worker process
nobody 22283 20789 0 10:47 ? 00:00:00 nginx: worker process
root 22319 20514 0 10:48 pts/1 00:00:00 grep --color=auto nginx
1個worker
root 20789 1 0 10:19 ? 00:00:00 nginx: master process nginx
nobody 22376 20789 0 10:49 ? 00:00:00 nginx: worker process
root 22378 20514 0 10:49 pts/1 00:00:00 grep --color=auto nginx
graph TB
Linux-->master
master-->worker1
master-->worker2
master-->worker3
worker1-->client1
worker1-->client2
worker2-->client3
worker2-->client4
worker3-->client5
worker3-->client6
master-worker架構的優點
- 支持熱部署reload,一個worker修改config,其他繼續處理請求
- 行程獨立,每個worker都是一個行程,不會造成服務中斷
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27836.html
標籤:其他
