國外網站 服務器青島seo排名公司
目錄
- 1.前端發(fā)送的請求,是如何請求到后端服務的
- 1.nginx 反向代理的好處:
- 2.nginx 反向代理的配置方式:
- 3. nginx 負載均衡的配置方式
1.前端發(fā)送的請求,是如何請求到后端服務的
1.nginx 反向代理的好處:
-
提高訪問速度
因為nginx本身可以進行緩存,如果訪問的同一接口,并且做了數(shù)據(jù)緩存,nginx就直接可把數(shù)據(jù)返回,不需要真正地訪問服務端,從而提高訪問速度。
-
進行負載均衡
所謂負載均衡,就是把大量的請求按照我們指定的方式均衡的分配給集群中的每臺服務器。
-
保證后端服務安全
因為一般后臺服務地址不會暴露,所以使用瀏覽器不能直接訪問,可以把nginx作為請求訪問的入口,請求到達nginx后轉發(fā)到具體的服務中,從而保證后端服務的安全。
2.nginx 反向代理的配置方式:
server{listen 80;server_name localhost;# 反向代理,處理管理端發(fā)送的請求location /api/{proxy_pass http://localhost:8080/admin/; #反向代理}
}
proxy_pass:該指令是用來設置代理服務器的地址,可以是主機名稱,IP地址加端口號等形式。
如上代碼的含義是:監(jiān)聽80端口號, 然后當我們訪問 http://localhost:80/api/…/…這樣的接口的時候,它會通過
location /api/ {} 這樣的反向代理到 http://localhost:8080/admin/上來。
當在訪問http://localhost/api/employee/login,nginx接收到請求后轉到http://localhost:8080/admin/,故最終的請求地址為http://localhost:8080/admin/employee/login,和后臺服務的訪問地址一致。
3. nginx 負載均衡的配置方式
當如果服務以集群的方式進行部署時,那nginx在轉發(fā)請求到服務器時就需要做相應的負載均衡。
負載均衡本質是基于反向代理實現(xiàn)的,最終都是轉發(fā)請求。
nginx 負載均衡的配置方式:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;
}
server{listen 80;server_name localhost;location /api/{proxy_pass http://webservers/admin;#負載均衡}
}
upstream:如果代理服務器是一組服務器的話,我們可以使用upstream指令配置后端服務器組。
如上代碼的含義是:監(jiān)聽80端口號, 然后當我們訪問 http://localhost:80/api/…/…這樣的接口的時候,它會通過 location /api/ {} 這樣的反向代理到 http://webservers/admin,根據(jù)webservers名稱找到一組服務器,根據(jù)設置的負載均衡策略(默認是輪詢)轉發(fā)到具體的服務器。
注:upstream后面的名稱可自定義,但要上下保持一致。
nginx 負載均衡策略:
名稱 | 說明 |
---|---|
輪詢 | 默認方式 |
weight | 權重方式,默認為1,權重越高,被分配的客戶端請求就越多 |
ip_hash | 依據(jù)ip分配方式,這樣每個訪客可以固定訪問一個后端服務 |
least_conn | 依據(jù)最少連接方式,把請求優(yōu)先分配給連接數(shù)少的后端服務 |
url_hash | 依據(jù)url分配方式,這樣相同的url會被分配到同一個后端服務 |
fair | 依據(jù)響應時間方式,響應時間短的服務將會被優(yōu)先分配 |
具體配置方式:
輪詢:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;
}
weight:
upstream webservers{server 192.168.100.128:8080 weight=90;server 192.168.100.129:8080 weight=10;
}
ip_hash:
upstream webservers{ip_hash;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
least_conn:
upstream webservers{least_conn;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
url_hash:
upstream webservers{hash &request_uri;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
fair:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;fair;
}