1. 程式人生 > >最簡單的Nginx介紹

最簡單的Nginx介紹

好久沒有寫部落格了,後面部落格應該會慢慢寫起來,這裡只先寫一個對nginx最簡單的認識。

我們一般用nginx作為代理伺服器,並帶有負載均衡的作用,當我們將服務部署到多臺伺服器上的時候,如何能讓每一個伺服器都能收到請求,這就需要一個nginx伺服器將請求轉發給業務伺服器。nginx的作用就是請求來了後,通過nginx伺服器根據一定的策越轉發給一臺業務伺服器去處理。

nginx的配置檔案簡介,這是一個不完整的nginx的配置檔案,為什麼不是完整的呢,為了更加簡單的理解nginx

#這裡的域名要和下面proxy_pass的一樣
upstream fengzp.com {
server 192.168.99.100:42000 weight=1;
server 192.168.99.100:42001 weight=2;
}

server {
listen 80;
server_name wwww.baidu.com;

location / { #location1
proxy_pass http://fengzp.com;
proxy_redirect default;
}

error_page 500 502 503 504 /50x.html;
location = /index.html { #location2
root html;
}
}

     當nginx伺服器接受到www.baidu.com的url的請求後,執行過程如下

  1. 首先nginx拿到url後會去到server裡面的server_name進行匹配,如果請求的url或ip和server_name裡面的值是一致的,就會將url交給location進行匹配。

  2. url會去和location後面的值進行匹配,location後面的值如果是是=開頭的那就是精準匹配,如果是~開頭的就是萬用字元匹配,如果是^開頭的就是正則匹配,匹配的優先度就是精準,統配,正則。由於請求的url是www.baidu.com,所以只能匹配到location1,然後拿到proxy_pass後面的值

    http://fengzp.com,拿到http://fengzp.com後就去匹配upstream後面的值。如果請求的url是www.baidu.com/index.html,那就會匹配到location2上面,然後訪問伺服器的html/index.html檔案

  3. 當通過proxy_pass後面的值找到對應的upstream後,會根據upstream裡面的路由規則選擇一個ip,這個ip就是一個業務伺服器的ip了,然後nginx就將請求傳送到這個伺服器上。