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

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

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

簡介

Nginx 是一個高性能的 HTTP 服務器和反向代理服務器.

最常用的兩個功能是反向代理和負載均衡.

反向代理

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

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

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

使用 Nginx 配置反向代理非常簡單, 基礎配置如下:

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;
 }
}

上面的配置文件中設置了一個域名 web.coolcat.com,
對這個域名的所有請求都會轉(zhuǎn)發(fā)到 http://web 上.

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

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

負載均衡

負載均衡和反向代理是分不開的, 負載均衡通常都是基于反向代理做的.

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

upstream web {
 server 127.0.0.1:8081;
}

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

輪詢

輪詢策略按順序分配請求.

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

加權輪詢

加權策略按比例分配請求.

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

上面的兩個服務器的訪問概率就是四六開.

最少連接

最少連接將請求分配給當前連接數(shù)最少的服務器.

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

ip_hash

來自同一個 IP 的連接都會分配給同一個服務器, 通常用于 會話保持.

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

當前部分的代碼

作為版本v0.14.0

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

相關文章

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

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

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

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

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

    Go?模塊在下游服務抖動恢復后CPU占用無法恢復原因

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

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

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

    Golang 實現(xiàn)獲取當前函數(shù)名稱和文件行號等操作

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

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

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

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

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

    golang mapstructure庫的具體使用

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

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

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

    Go語言實現(xiàn)圖片快遞信息識別的簡易方法

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

最新評論