nginx反向代理學習筆記

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。

wKioL1VAECehok1wAAG3OuTKWcw859.jpg

二、分別建立對應的網站根目錄

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

五、分別請求測試網頁,看看可否正常訪問。

wKioL1VAE5TAN3cqAANQxIOE-M4017.jpg

六、由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等待後端服務器的響應時間,

相關文章
相關標籤/搜索