最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

簡(jiǎn)介

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

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

反向代理

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

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

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

使用 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 上.

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

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

負(fù)載均衡

負(fù)載均衡和反向代理是分不開的, 負(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ù)載均衡了.

輪詢

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

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

加權(quá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ù)器的訪問概率就是四六開.

最少連接

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

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

ip_hash

來自同一個(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類型斷言的實(shí)現(xiàn)示例

    golang類型斷言的實(shí)現(xiàn)示例

    在Go語言中,類型斷言用于從接口類型獲取其具體類型的值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Golang實(shí)現(xiàn)smtp郵件發(fā)送的示例代碼

    Golang實(shí)現(xiàn)smtp郵件發(fā)送的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)smtp郵件發(fā)送的相關(guān)知識(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解Golang如何動(dòng)態(tài)獲取配置文件

    詳解Golang如何動(dòng)態(tài)獲取配置文件

    項(xiàng)目中經(jīng)常獲取一些常用配置文件,當(dāng)有配置文件中的參數(shù)被修改后,如何的實(shí)時(shí)獲取配置文件就很關(guān)鍵了,下面小編就來講講如何利用viper實(shí)時(shí)獲取配置文件吧
    2023-08-08
  • 一文帶你了解Go中的內(nèi)存對(duì)齊

    一文帶你了解Go中的內(nèi)存對(duì)齊

    一旦涉及到較為底層的編程,特別是與硬件交互,內(nèi)存對(duì)齊是一個(gè)必修的課題,所以這篇文章小編就想來和大家聊一聊Go語言中的內(nèi)存對(duì)齊,希望對(duì)大家有所幫助
    2023-10-10
  • Go語言Goroutinue和管道效率詳解

    Go語言Goroutinue和管道效率詳解

    這篇文章主要為大家介紹了Go語言Goroutinue和管道效率使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Golang協(xié)程常見面試題小結(jié)

    Golang協(xié)程常見面試題小結(jié)

    本文主要介紹了Golang協(xié)程常見面試題小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • go語言制作一個(gè)gif動(dòng)態(tài)圖

    go語言制作一個(gè)gif動(dòng)態(tài)圖

    這篇文章主要介紹了go制作一個(gè)gif動(dòng)態(tài)圖的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • 使用go讀取gzip格式的壓縮包的操作

    使用go讀取gzip格式的壓縮包的操作

    這篇文章主要介紹了使用go讀取gzip格式的壓縮包的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go-zero源碼閱讀之布隆過濾器實(shí)現(xiàn)代碼

    go-zero源碼閱讀之布隆過濾器實(shí)現(xiàn)代碼

    布隆過濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中。它的優(yōu)點(diǎn)是空間效率和查詢時(shí)間都比一般的算法要好的多,缺點(diǎn)是有一定的誤識(shí)別率和刪除困難,這篇文章主要介紹了go-zero源碼閱讀-布隆過濾器,需要的朋友可以參考下
    2023-02-02
  • Go錯(cuò)誤處理的幾種方式

    Go錯(cuò)誤處理的幾種方式

    在Go語言中,錯(cuò)誤處理是一種重要的編程模式,它用于處理可能出現(xiàn)的錯(cuò)誤或異常情況,本文就來介紹一下Go錯(cuò)誤處理的幾種方式,感興趣的可以了解一下
    2023-11-11

最新評(píng)論

绥棱县| 洪洞县| 永城市| 洛宁县| 崇州市| 南江县| 平南县| 龙陵县| 九龙县| 湘阴县| 石首市| 闵行区| 鄂尔多斯市| 大埔县| 都江堰市| 巧家县| 揭阳市| 修武县| 丰县| 大港区| 岚皋县| 江津市| 富阳市| 寿阳县| 凌云县| 青冈县| 防城港市| 北宁市| 乌鲁木齐市| 大埔区| 商丘市| 石景山区| 遂平县| 阿拉善左旗| 依兰县| 孝感市| 礼泉县| 天祝| 庐江县| 亚东县| 西贡区|