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

使用AWS的ELB服務(wù)時(shí)為Nginx啟用代理協(xié)議的步驟講解

 更新時(shí)間:2015年12月21日 15:23:18   投稿:goldensun  
這篇文章主要介紹了使用AWS的ELB服務(wù)時(shí)為Nginx啟用代理協(xié)議的步驟講解,ELB服務(wù)是亞馬遜服務(wù)器提供的常用的負(fù)載均衡方案,需要的朋友可以參考下

在使用aws云服務(wù)的時(shí)候,90%要使用ELB服務(wù)作為負(fù)載均衡的解決方案,使用ELB要比自己搭建負(fù)載均衡要方便得多。
  主要好處有:
  1.可以隨時(shí)監(jiān)控實(shí)例的健康狀態(tài);
  2.當(dāng)服務(wù)器不正常時(shí),ELB的報(bào)警策略將自動(dòng)發(fā)送郵件通知運(yùn)維人員
  3.當(dāng)服務(wù)器負(fù)載到達(dá)閾值時(shí),通過auto scanning將自動(dòng)加入新的服務(wù)器到集群中,同時(shí)負(fù)載降下去后將自動(dòng)關(guān)閉多余的實(shí)例
  4.ELB的各項(xiàng)監(jiān)控指標(biāo)較好地幫助判斷服務(wù)器性能

AWS ELB nginx 啟用代理協(xié)議
要使用aws elb服務(wù)器來做websocket負(fù)載均衡時(shí),只能使用tcp模式。
代理協(xié)議是一種 Internet 協(xié)議,用于將連接信息從請(qǐng)求連接的源傳遞到請(qǐng)求連接到的目標(biāo)。Elastic Load Balancing 使用代理協(xié)議版本 1,該版本使用用戶可讀的標(biāo)頭格式。
默認(rèn)情況下,當(dāng)對(duì)前端和后端連接使用傳輸控制協(xié)議 (TCP) 或安全套接字層 (SSL) 時(shí),您的負(fù)載均衡器會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到后端實(shí)例,而不修改請(qǐng)求標(biāo)頭。如果您啟用代理協(xié)議,則會(huì)向請(qǐng)求標(biāo)頭添加一個(gè)用戶可讀的標(biāo)頭,其中包含連接信息(如源 IP 地址、目標(biāo) IP 地址和端口號(hào))。該標(biāo)頭隨后作為請(qǐng)求的一部分發(fā)送到后端實(shí)例。
您可以在使用 SSL 和 TCP 協(xié)議的端口上啟用代理協(xié)議。當(dāng)使用非 HTTP 協(xié)議時(shí),或者當(dāng)使用 HTTPS 并且未在負(fù)載均衡器上終止 SSL 連接時(shí),您可以使用代理協(xié)議捕獲客戶端的源 IP。
代理協(xié)議頭
在您使用為 TCP/SSL 連接配置的負(fù)載均衡器時(shí),代理協(xié)議標(biāo)頭有助于識(shí)別客戶端的 IP 地址。因?yàn)樨?fù)載均衡器會(huì)攔截客戶端與您的后端實(shí)例之間的流量,因此您的后端實(shí)例的訪問日志中將包含負(fù)載均衡器的 IP 地址而不是原始客戶端的 IP 地址。您可以分析該請(qǐng)求的第一行,以檢索該客戶端的 IP 地址和端口號(hào)。
IPv6 標(biāo)頭中的代理地址是負(fù)載均衡器的公有 IPv6 地址。此 IPv6 地址與從該負(fù)載均衡器以 ipv6 或 dualstack 開頭的 DNS 名稱解析而來的 IP 地址相匹配。如果客戶端使用 IPv4 進(jìn)行連接,則代理標(biāo)頭中的地址是該負(fù)載均衡器的私有 IPv4 地址,不能在 EC2-Classic 網(wǎng)絡(luò)外部通過 DNS 查找進(jìn)行解析。
該代理協(xié)議行以回車符和換行符 ("\r\n") 結(jié)束,且具有以下形式:

PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"

實(shí)例:

PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n

安裝AWS CLI工具
AWS 管理控制臺(tái)是不支持啟用代理協(xié)議的,因此需要通過命令行來啟用。

# sudo apt-get install python-pip
# sudo pip install awscli

配置授權(quán)連接參數(shù)文件。

# sudo vi ~/.aws/config
[default]
aws_access_key_id = YOU_ACCESS_ID
aws_secret_access_key = YOU_SECRET_ID
output = json OR bson OR text
region = PREFERRED_AWS_REGION

類似這樣的,aws_access_key_id、aws_secret_access_key、region根據(jù)你的aws實(shí)例填寫。
AWS ELB啟用代理協(xié)議
查看ELB支持的策略。響應(yīng)包含支持的策略類型的名稱和描述。

# aws elb describe-load-balancer-policy-types
{
  "PolicyTypeDescriptions": [
    ...
    {
      "PolicyAttributeTypeDescriptions": [
        {
          "Cardinality": "ONE",
          "AttributeName": "ProxyProtocol",
          "AttributeType": "Boolean"
        }
      ],
      "PolicyTypeName": "ProxyProtocolPolicyType",
      "Description": "Policy that controls whether to include the IP address and port of the originating 
request for TCP messages. This policy operates on TCP/SSL listeners only"
    },
    ...
  ]
}

創(chuàng)建啟用代理協(xié)議的策略

# aws elb create-load-balancer-policy --load-balancer-name YOU_ELB_NAME --policy-name EnableProxyProtocol --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=True

該命令創(chuàng)建了一個(gè)名稱為EnableProxyProtocol的策略,并分配下列ELB屬性"AttributeName=ProxyProtocol & AttributeValue=True"。
在指定端口上啟用上述的策略

# aws elb set-load-balancer-policies-for-backend-server --load-balancer-name YOU_ELB_NAME --instance-port 80 --policy-names EnableProxyProtocol
# aws elb set-load-balancer-policies-for-backend-server --load-balancer-name YOU_ELB_NAME --instance-port 81 --policy-names EnableProxyProtocol
# aws elb set-load-balancer-policies-for-backend-server --load-balancer-name YOU_ELB_NAME --instance-port 443 --policy-names EnableProxyProtocol

此命令將替代當(dāng)前已啟用的策略組。因此,--policy-names 選項(xiàng)必須同時(shí)指定您正在添加到列表中的策略和任何當(dāng)前已啟用的策略。
查看是否啟用

# aws elb describe-load-balancers --load-balancer-name YOU_ELB_NAME | jq '.LoadBalancerDescriptions[].BackendServerDescriptions'
[
 {
  "PolicyNames": [
   "EnableProxyProtocol"
  ],
  "InstancePort": 80
 },
 {
  "PolicyNames": [
   "EnableProxyProtocol"
  ],
  "InstancePort": 81
 },
 {
  "PolicyNames": [
   "EnableProxyProtocol"
  ],
  "InstancePort": 443
 }
]

如果要禁用代理協(xié)議可以這么做,同時(shí),可通過第4步查看是否禁用了。

# aws elb set-load-balancer-policies-for-backend-server --load-balancer-name YOU_ELB_NAME --instance-port 80 --policy-names "[]"

配置nginx接受代理協(xié)議頭
nginx啟用這個(gè)主要的目的是為了獲取到真實(shí)的客戶端IP地址。否則,都是ELB的內(nèi)網(wǎng)IP地址。

set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.0.0/8;
real_ip_header  proxy_protocol;
real_ip_recursive on;

server {
  listen 80 proxy_protocol;
  listen 443 proxy_protocol ssl;
...
  location / {
   proxy_set_header Host        $host;
   proxy_set_header X-Real-IP      $proxy_protocol_addr;
   proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto  tcp;
   proxy_set_header X-NginX-Proxy    true;
...
}

set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.0.0/8;
real_ip_header  proxy_protocol;
real_ip_recursive on;
 
server {
  listen 80 proxy_protocol;
  listen 443 proxy_protocol ssl;
...
  location / {
   proxy_set_header Host        $host;
   proxy_set_header X-Real-IP      $proxy_protocol_addr;
   proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto  tcp;
   proxy_set_header X-NginX-Proxy    true;
...
}

當(dāng)nginx啟用了代理協(xié)議,$proxy_protocol_addr變量將是真實(shí)的客戶端IP。
如果沒有反代,nginx這么配置即可:

log_format elb_log '$proxy_protocol_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';
 
set_real_ip_from 172.31.0.0/20;
set_real_ip_from 10.0.0.0/8;
real_ip_header proxy_protocol;

相關(guān)文章

  • Linux系統(tǒng)下nginx日志每天定時(shí)切割的腳本寫法

    Linux系統(tǒng)下nginx日志每天定時(shí)切割的腳本寫法

    本篇文章給大家分享使用Linux系統(tǒng)自帶的命令logrotate對(duì)Nginx日志進(jìn)行切割的方法,對(duì)nginx日志切割腳本感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11
  • nginx 某些url只能由特定網(wǎng)段訪問

    nginx 某些url只能由特定網(wǎng)段訪問

    在一些場(chǎng)景中,我們需要根據(jù)客戶端的IP地址或網(wǎng)段對(duì)訪問進(jìn)行控制,在Nginx中針對(duì)某些URL只允許特定網(wǎng)段訪問,本文就來介紹一下如何實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • CentOS 7下安裝Nginx服務(wù)器

    CentOS 7下安裝Nginx服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了CentOS 7下安裝Nginx服務(wù)器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Nginx配置網(wǎng)站適配PC和手機(jī)的幾種方法

    Nginx配置網(wǎng)站適配PC和手機(jī)的幾種方法

    在開發(fā)中,我們常常會(huì)遇到需要根據(jù)用戶設(shè)備的不同,返回對(duì)應(yīng)樣式的頁面,本文主要介紹了Nginx配置網(wǎng)站適配PC和手機(jī)的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Nginx實(shí)現(xiàn)404頁面的幾種方法(三種)

    Nginx實(shí)現(xiàn)404頁面的幾種方法(三種)

    一個(gè)網(wǎng)站項(xiàng)目,肯定是避免不了404頁面的,通常使用Nginx作為Web服務(wù)器時(shí),有些相關(guān)配置方法,下面小編給大家?guī)砹薔ginx實(shí)現(xiàn)404頁面的幾種方法,感興趣的朋友一起看看吧
    2018-08-08
  • CentOS系統(tǒng)rpm安裝Nginx和配置

    CentOS系統(tǒng)rpm安裝Nginx和配置

    大家好,本篇文章主要講的是CentOS系統(tǒng)rpm安裝Nginx和配置,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 基于Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟

    基于Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟

    本文主要介紹了Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • nginx fair負(fù)載均衡方式使用詳解

    nginx fair負(fù)載均衡方式使用詳解

    本文主要介紹了nginx fair負(fù)載均衡方式使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 一文帶你搞懂什么是Nginx服務(wù)器

    一文帶你搞懂什么是Nginx服務(wù)器

    這篇文章主要介紹了一文帶你搞懂什么是Nginx,Nginx?(engine?x)?是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了iMAP/POP3/SMTP服務(wù),需要的朋友可以參考下
    2023-04-04
  • 學(xué)習(xí)nginx基礎(chǔ)知識(shí)

    學(xué)習(xí)nginx基礎(chǔ)知識(shí)

    這篇文章主要介紹了nginx基礎(chǔ)知識(shí),文中運(yùn)用了大量的圖片和代碼進(jìn)行講解,對(duì)相關(guān)知識(shí)感興趣的小伙伴可以參考一下這篇文章
    2021-09-09

最新評(píng)論

万载县| 甘洛县| 临邑县| 安化县| 白银市| 错那县| 凉城县| 陵水| 高州市| 中西区| 科技| 阿瓦提县| 龙门县| 宣恩县| 定陶县| 丽水市| 金川县| 徐州市| 邯郸县| 雷波县| 包头市| 枣强县| 高碑店市| 哈巴河县| 志丹县| 新野县| 山西省| 莲花县| 焉耆| 华安县| 呼伦贝尔市| 莱阳市| 贵定县| 永康市| 绵阳市| 雅安市| 衡山县| 贡觉县| 全州县| 本溪市| 自贡市|