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

詳解使用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í)際上訪(fǎng)問(wèn)的反向代理服務(wù)器,
反向代理服務(wù)器再去訪(fǎng)問(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ù)器的訪(fǎng)問(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ì)話(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類(lèi)型斷言的實(shí)現(xiàn)示例

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

    在Go語(yǔ)言中,類(lèi)型斷言用于從接口類(lèi)型獲取其具體類(lèi)型的值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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í),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)鍵了,下面小編就來(lái)講講如何利用viper實(shí)時(shí)獲取配置文件吧
    2023-08-08
  • 一文帶你了解Go中的內(nèi)存對(duì)齊

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

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

    Go語(yǔ)言Goroutinue和管道效率詳解

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

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

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

    go語(yǔ)言制作一個(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ì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • go-zero源碼閱讀之布隆過(guò)濾器實(shí)現(xiàn)代碼

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

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

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

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

最新評(píng)論

蕲春县| 沂源县| 顺义区| 昌平区| 榆中县| 玛多县| 和平县| 遂平县| 伊金霍洛旗| 苍溪县| 磐安县| 辽源市| 常德市| 耿马| 惠州市| 惠安县| 哈巴河县| 四会市| 西和县| 烟台市| 三台县| 台北县| 南通市| 儋州市| 浪卡子县| 铅山县| 宁城县| 肇东市| 邓州市| 恩施市| 双桥区| 宜兰市| 红桥区| 杭锦旗| 沽源县| 宁晋县| 恭城| 民丰县| 凤庆县| 广宁县| 日照市|