亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nginx處理http請(qǐng)求實(shí)現(xiàn)過程解析

 更新時(shí)間:2020年11月27日 15:03:29   作者:淺笑  
這篇文章主要介紹了nginx處理http請(qǐng)求實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

nginx首先決定要用配置文件里的哪個(gè)server{}塊來處理,假設(shè)有下面的server{}配置

server {
  listen   80;
  server_name aaa;
  ...
}

server {
  listen   80;
  server_name bbb;
  ...
}

nginx會(huì)根據(jù)過來的http請(qǐng)求頭里的Host字段里的值,來判斷使用哪個(gè)server{}。

如果請(qǐng)求頭里沒有Host字段,或者Host字段里的值,和Nginx配置文件里的server{}里的{server_name}都不匹配,則使用第一個(gè)server{},來處理這個(gè)請(qǐng)求。

如果請(qǐng)求頭里的Host字段里的值和Nginx配置文件里的某個(gè)server{}里的{server_name},匹配上了,則使用這個(gè)server{},來處理這個(gè)請(qǐng)求。

可以使用curl工具來方便的做實(shí)驗(yàn),curl可以設(shè)置http請(qǐng)求的請(qǐng)求頭,所以可以任意設(shè)置Host字段,用【-H】來設(shè)置。下面的10.210.65.73是安裝了nginx的機(jī)器的IP地址。

所以用下面的命令,發(fā)送了http請(qǐng)求后,nginx就會(huì)使用server{server_name aaa}來處理這個(gè)請(qǐng)求。

curl.exe -H "Host: aaa" 10.210.65.73

非常重要的結(jié)論:server_name對(duì)應(yīng)的是http請(qǐng)求頭里的Host字段的值,有了上面的理論支撐,就可以很容易的設(shè)置反向代理和負(fù)載均衡:

當(dāng)過來的http請(qǐng)求頭里的Host字段為aaa時(shí),storage.test來處理。

當(dāng)過來的http請(qǐng)求頭里的Host字段為bbb時(shí),tracker.test來處理。

  #負(fù)載均衡配置,IP為129的機(jī)器配置高,所以給他的數(shù)字的27,就是讓它多處理
  upstream storage.test {
   server 10.210.65.129:80 weight=27;
   server 10.210.65.130:80 weight=1;
  }

  #負(fù)載均衡配置
  upstream tracker.test {
   server 10.210.65.52:80 weight=7;
   server 10.210.65.53:80 weight=2;
  }

  #文件的存儲(chǔ)
  server {
    listen    80;
    server_name aaa;
    location / {
      #http:://后面的內(nèi)容是自己定義,對(duì)應(yīng)上面upstream的名字
      proxy_pass http://storage.test;
    }
  }

  #文件服務(wù)器tracker
  server {
    listen    80;
    server_name bbb;

    location / {
      #http:://后面的內(nèi)容是自己定義的,對(duì)應(yīng)上面upstream的名字
      proxy_pass http://tracker.test;
    }

  }

server{}里的listen監(jiān)聽的是誰的端口?

監(jiān)聽的是:發(fā)送過來http請(qǐng)求的進(jìn)程(大部分是瀏覽器)的端口(如果是http請(qǐng)求,則為端口為80),不是nginx服務(wù)器自己進(jìn)程的端口。

nginx根據(jù)http請(qǐng)求頭的Host字段里的值,和發(fā)送過來http請(qǐng)求的進(jìn)程(大部分是瀏覽器)的端口,來決定使用哪個(gè)server{}來處理http請(qǐng)求。

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

相關(guān)文章

最新評(píng)論