新聞中心
簡介
成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(成都創(chuàng)新互聯(lián)公司).為客戶提供專業(yè)的雅安電信機(jī)房,四川各地服務(wù)器托管,雅安電信機(jī)房、多線服務(wù)器托管.托管咨詢專線:18982081108
Nginx 是一個高性能的 HTTP 服務(wù)器和反向代理服務(wù)器.
最常用的兩個功能是反向代理和負(fù)載均衡.
反向代理
反向代理是正向代理的反面.
普通的代理服務(wù)器是需要用戶主動去設(shè)置的, 用戶在自己的電腦上設(shè)置并連接代理服務(wù)器,
從而可以隱藏自己的 IP, 使得應(yīng)用服務(wù)器不知道客戶端的 IP 地址.
而反向代理是作為應(yīng)用服務(wù)器的代理, 安裝在服務(wù)器上. 客戶端實際上訪問的反向代理服務(wù)器,
反向代理服務(wù)器再去訪問實際的應(yīng)用服務(wù)器, 然后將獲取到的響應(yīng)傳送給客戶端.
使用 Nginx 配置反向代理非常簡單, 基礎(chǔ)配置如下:
upstream web { server 127.0.0.1:8081; } server { listen 80; server_name web.coolcat.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 5m; proxy_pass http://web; } }
上面的配置文件中設(shè)置了一個域名 web.coolcat.com
,
對這個域名的所有請求都會轉(zhuǎn)發(fā)到 http://web
上.
通過配置 upstream
, 我們可以發(fā)現(xiàn), 實際上的流量都被轉(zhuǎn)發(fā)到了127.0.0.1:8081
上了.
如此一來, 就實現(xiàn)了反向代理.
負(fù)載均衡
負(fù)載均衡和反向代理是分不開的, 負(fù)載均衡通常都是基于反向代理做的.
所謂的負(fù)載均衡, 指的是將多個請求轉(zhuǎn)發(fā)到不同的后端服務(wù)器上.
upstream web { server 127.0.0.1:8081; }
在上面的反向代理配置中, 只設(shè)置了一個后端服務(wù)器地址,
如果再添加幾個, 就實現(xiàn)了最簡單的負(fù)載均衡了.
輪詢
輪詢策略按順序分配請求.
upstream web { server 192.168.1.1:8081; server 192.168.1.2:8081; }
加權(quán)輪詢
加權(quán)策略按比例分配請求.
upstream web { server 192.168.1.1:8081 weight=4; server 192.168.1.2:8081 weight=6; }
上面的兩個服務(wù)器的訪問概率就是四六開.
最少連接
最少連接將請求分配給當(dāng)前連接數(shù)最少的服務(wù)器.
upstream web { least_conn; server 192.168.1.1:8081; server 192.168.1.2:8081; }
ip_hash
來自同一個 IP 的連接都會分配給同一個服務(wù)器, 通常用于 會話保持
.
upstream web { ip_hash; server 192.168.1.1:8081; server 192.168.1.2:8081; }
通用 hash
使用 hash 自定義要計算的 key. 示例中使用請求地址.
可以選擇 consistent
參數(shù)可以指定使用一致性哈希算法.
upstream web { hash $request_uri; # hash $request_uri consistent; server 192.168.1.1:8081; server 192.168.1.2:8081; }
參考:
Using nginx as HTTP load balancer
Module ngx_http_upstream_module
總結(jié)
Nginx 是很常用的代理服務(wù)器, 它的功能非常強(qiáng)大, 性能也很好.
更多的資料請參考官方文檔.
當(dāng)前部分的代碼
作為版本v0.14.0
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
標(biāo)題名稱:詳解使用Go添加Nginx代理的方法示例
當(dāng)前路徑:http://fisionsoft.com.cn/article/gisocs.html