主頁 > 知識庫 > 詳解使用Go添加Nginx代理的方法示例

詳解使用Go添加Nginx代理的方法示例

熱門標(biāo)簽:學(xué)海導(dǎo)航地圖標(biāo)注 廣州呼叫中心外呼系統(tǒng) 江西轉(zhuǎn)化率高的羿智云外呼系統(tǒng) 浙江高速公路地圖標(biāo)注 中國地圖標(biāo)注省會高清 南通如皋申請開通400電話 西部云谷一期地圖標(biāo)注 高德地圖標(biāo)注口訣 地圖標(biāo)注的汽車標(biāo)

簡介

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ù)器, 它的功能非常強大, 性能也很好.
更多的資料請參考官方文檔.

當(dāng)前部分的代碼

作為版本v0.14.0

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 通過nginx反向代理來調(diào)試代碼的實現(xiàn)
  • Docker中使用Nginx代理多個應(yīng)用站點的方法
  • Nginx正反向代理及負(fù)載均衡等功能實現(xiàn)配置代碼實例
  • 通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))
  • 添加Nginx代理配置只允許內(nèi)部IP訪問的實現(xiàn)方法
  • Nginx代理proxy pass配置去除前綴的實現(xiàn)
  • 18個運維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢)
  • Nginx正向反向代理區(qū)別及原理解析

標(biāo)簽:慶陽 太原 廣西 調(diào)研邀請 西雙版納 阿克蘇 貴陽 德州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解使用Go添加Nginx代理的方法示例》,本文關(guān)鍵詞  詳解,使用,添加,Nginx,代理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解使用Go添加Nginx代理的方法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解使用Go添加Nginx代理的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章