Nginx安裝比較簡單,下面重點說一下關於反向代理功能的一些配置。
html
upstream 指令必須放在 http的上下文當中,建立一個RealServer的服務器池,並給這個服務器池取一個名字,以便後面引用該服務器池。nginx
那麼引用方式主要有這幾個,fastcgi_pass, proxy_pass, memcached_pass,uwsgi_pass 等。web
這裏,咱們先說一下proxy_pass 這個指令的用法:後端
一、proxy_pass URL 後面跟上一個URL,這個指令能夠放在 location,if in location 中,好比下面的用法:服務器
upstream web_poolide
{memcached
server 192.168.1.8;測試
server 192.168.1.9;網站
}spa
---------------
location / {
root html;
index index.html index.htm;
proxy_pass http://web_pool;
}
location /name/ {
proxy_pass http://192.168.1.9/index.html ;
}
二、下面關注一下 http_proxy模塊的參數:
Nginx的代理功能是經過http_proxy模塊來實現的,默認在安裝nginx的時候,已經安裝了該模塊,來看一下每一個選項表明什麼意思:
proxy_set_header 設置由後端服務器獲取用戶的主機名或者真實的IP地址,以及代理者的真實IP地址;
須要作一個實驗,來明白這個原理。
請看實驗過程,分別在每臺後端服務器創建兩個虛擬主機。
一、這裏爲了演示,使用的是經過yum 安裝的httpd。
二、分別建立對應的網站根目錄
mkdir -pv /www/docs/{bbs,www}
三、創建網頁索引文件
echo "www" > /www/docs/www/index.html && echo "bbs" > /www/docs/bbs/index.html
四、在後端服務器中使用上述相同步驟操做,並同步網站數據至其餘後端服務器中。
scp -pr /www/docs root@192.168.1.X:/www/docs
五、分別請求測試網頁,看看可否正常訪問。
六、由nginx經過反向代理的方式,來訪問後端服務器;
首先來看一下語法
Syntax: proxy_set_header field value;
默認設置: proxy_set_header Host $proxy_host; 指的是反向代理nginx的IP地址,不是來自客戶端的域名
Context:http, server, location 上下文標籤中
七、爲了保證,可以未來自客戶端的請求正確的轉發到正確的虛擬主機上,須要在location標籤中,增長下面的設置。
proxy_set_header Host $host;
client_body_buffer_size 用於指定客戶端請求主體緩衝區大小,能夠理解爲先保存到本地而後再傳給客戶;
proxy_connect_timeout 表示與後端服務器鏈接的超時時間,即發起握手等候響應的超時時間;
proxy_send_timeout 表示後端服務器的數據回傳時間,即在規定時間以內後端服務器必須傳完全部的數據,不然,nginx則斷開這個鏈接;
proxy_read_timeout 設置nginx從代理的後端服務器獲取信息的時間,表示鏈接創建成功後,nginx等待後端服務器的響應時間,