欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年11月05日 09:45:47   作者:帥氣貓咪  
這篇文章主要介紹了詳解使用Go添加Nginx代理的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

簡(jiǎn)介

Nginx 是一個(gè)高性能的 HTTP 服務(wù)器和反向代理服務(wù)器.

最常用的兩個(gè)功能是反向代理和負(fù)載均衡.

反向代理

反向代理是正向代理的反面.

普通的代理服務(wù)器是需要用戶(hù)主動(dòng)去設(shè)置的, 用戶(hù)在自己的電腦上設(shè)置并連接代理服務(wù)器,
從而可以隱藏自己的 IP, 使得應(yīng)用服務(wù)器不知道客戶(hù)端的 IP 地址.

而反向代理是作為應(yīng)用服務(wù)器的代理, 安裝在服務(wù)器上. 客戶(hù)端實(shí)際上訪問(wèn)的反向代理服務(wù)器,
反向代理服務(wù)器再去訪問(wèn)實(shí)際的應(yīng)用服務(wù)器, 然后將獲取到的響應(yīng)傳送給客戶(hù)端.

使用 Nginx 配置反向代理非常簡(jiǎn)單, 基礎(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è)置了一個(gè)域名 web.coolcat.com,
對(duì)這個(gè)域名的所有請(qǐng)求都會(huì)轉(zhuǎn)發(fā)到 http://web 上.

通過(guò)配置 upstream, 我們可以發(fā)現(xiàn), 實(shí)際上的流量都被轉(zhuǎn)發(fā)到了
127.0.0.1:8081 上了.

如此一來(lái), 就實(shí)現(xiàn)了反向代理.

負(fù)載均衡

負(fù)載均衡和反向代理是分不開(kāi)的, 負(fù)載均衡通常都是基于反向代理做的.

所謂的負(fù)載均衡, 指的是將多個(gè)請(qǐng)求轉(zhuǎn)發(fā)到不同的后端服務(wù)器上.

upstream web {
 server 127.0.0.1:8081;
}

在上面的反向代理配置中, 只設(shè)置了一個(gè)后端服務(wù)器地址,
如果再添加幾個(gè), 就實(shí)現(xiàn)了最簡(jiǎn)單的負(fù)載均衡了.

輪詢(xún)

輪詢(xún)策略按順序分配請(qǐng)求.

upstream web {
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

加權(quán)輪詢(xún)

加權(quán)策略按比例分配請(qǐng)求.

upstream web {
 server 192.168.1.1:8081 weight=4;
 server 192.168.1.2:8081 weight=6;
}

上面的兩個(gè)服務(wù)器的訪問(wèn)概率就是四六開(kāi).

最少連接

最少連接將請(qǐng)求分配給當(dāng)前連接數(shù)最少的服務(wù)器.

upstream web {
 least_conn;
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

ip_hash

來(lái)自同一個(gè) IP 的連接都會(huì)分配給同一個(gè)服務(wù)器, 通常用于 會(huì)話保持.

upstream web {
 ip_hash;
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

通用 hash

使用 hash 自定義要計(jì)算的 key. 示例中使用請(qǐng)求地址.
可以選擇 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)大, 性能也很好.
更多的資料請(qǐng)參考官方文檔.

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

作為版本v0.14.0

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

相關(guān)文章

  • 解決golang.org不能訪問(wèn)的問(wèn)題(推薦)

    解決golang.org不能訪問(wèn)的問(wèn)題(推薦)

    這篇文章主要介紹了解決golang.org不能訪問(wèn)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • Golang指針的操作以及常用的指針函數(shù)

    Golang指針的操作以及常用的指針函數(shù)

    本文主要介紹了Golang指針的操作以及常用的指針函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因

    Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因

    這篇文章主要為大家介紹了Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 一文帶你深入了解Go語(yǔ)言中切片的奧秘

    一文帶你深入了解Go語(yǔ)言中切片的奧秘

    切片是數(shù)組的一個(gè)引用,因此切片是引用類(lèi)型。但自身是結(jié)構(gòu)體,值拷貝傳遞。本文將通過(guò)示例帶大家一起探索一下Go語(yǔ)言中切片的奧秘,感興趣的可以了解一下
    2022-11-11
  • Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱(chēng)和文件行號(hào)等操作

    Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱(chēng)和文件行號(hào)等操作

    這篇文章主要介紹了Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱(chēng)和文件行號(hào)等操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • 教你用go語(yǔ)言實(shí)現(xiàn)比特幣交易功能(Transaction)

    教你用go語(yǔ)言實(shí)現(xiàn)比特幣交易功能(Transaction)

    每一筆比特幣交易都會(huì)創(chuàng)造輸出,輸出都會(huì)被區(qū)塊鏈記錄下來(lái)。給某個(gè)人發(fā)送比特幣,實(shí)際上意味著創(chuàng)造新的 UTXO 并注冊(cè)到那個(gè)人的地址,可以為他所用,今天通過(guò)本文給大家分享go語(yǔ)言實(shí)現(xiàn)比特幣交易功能,一起看看吧
    2021-05-05
  • golang語(yǔ)言如何將interface轉(zhuǎn)為int, string,slice,struct等類(lèi)型

    golang語(yǔ)言如何將interface轉(zhuǎn)為int, string,slice,struct等類(lèi)型

    這篇文章主要介紹了golang語(yǔ)言如何將interface轉(zhuǎn)為int, string,slice,struct等類(lèi)型,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • golang mapstructure庫(kù)的具體使用

    golang mapstructure庫(kù)的具體使用

    mapstructure用于將通用的map[string]interface{}解碼到對(duì)應(yīng)的 Go 結(jié)構(gòu)體中,或者執(zhí)行相反的操作,本文主要介紹了golang mapstructure庫(kù)的具體使用,感興趣的可以了解一下
    2023-09-09
  • goland遠(yuǎn)程調(diào)試k8s上容器的實(shí)現(xiàn)

    goland遠(yuǎn)程調(diào)試k8s上容器的實(shí)現(xiàn)

    本文主要介紹了goland遠(yuǎn)程調(diào)試k8s上容器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Go語(yǔ)言實(shí)現(xiàn)圖片快遞信息識(shí)別的簡(jiǎn)易方法

    Go語(yǔ)言實(shí)現(xiàn)圖片快遞信息識(shí)別的簡(jiǎn)易方法

    這篇文章主要為大家介紹了Go語(yǔ)言實(shí)現(xiàn)圖片快遞信息識(shí)別的簡(jiǎn)易方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10

最新評(píng)論