Nginx之ngx_http_proxy_module模塊詳解

一、正反向代理簡介

      1、正向代理:局域網內的機器借助于代理服務器訪問局域網外的網站

         這時正向代理的功能:

           (1)、增強局域網內部網絡安全

           (2)、利用正向代理可以堆局域網對外網的訪問進行必要的監控和管理

        注意:正向代理服務不支持外不對內部網絡的請訪問求

     2、與正向代理相反,如果局域網向外網提供資源,讓外網上的其他用戶可以訪問局域網內的資源,這時候可以設置一個代理服務器,而這個代理服務器它提供服務就叫做反向代理服務器

二、ngx_http_proxy_module模塊常見指令解釋:

         ngxhttpproxymodule模塊允許將請求傳遞給另一個服務器

1、proxy_pass URL;

        該指令用于設置被代理服務器的協議、主機名、IP地址和端口等形式。

        Context: location, if in location, limit_except

        注意:proxy_pass后面的路徑不帶uri時,其會將locationuri傳遞給后端主機;

                 proxy_pass后面的路徑是一個uri時,其會將location的uri替換為proxy_pass的uri;

                如果location定義其uri時使用了正則表達式的模式,或在if語句或limt_execept中使用proxy_pass指令,則proxy_pass之后必須不能使用uri; 用戶請求時傳遞的uri將直接附加代理到的服務的之后;

   2proxy_set_header field value;

       設定發往后端主機的請求報文的請求首部的值;

       Context: http, server, location

       Field:要更改信息所在的頭域

        Value:更改的值,支持使用文本、變量或者變量的組合

      示例:

        proxy_set_header X-Real-IP  $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   3proxy_cache_path

       定義可用于proxy功能的緩存;Context: http

      proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size]… 

      levels:設置在對于path指定目錄的第幾級hash目錄中緩存數據

      key_zone:Nginx服務器的緩存索引從簡進程在內存中為緩存數據建立索引,用來定義放存緩存索引的內存區域的名稱和大小

      inactive;表示緩存有效時間

      max_size:設置硬盤中緩存數據大大小

   4proxy_cache zone | off;

     指明要調用的緩存,或關閉緩存機制;

     Context: http, server, location

   5、 proxy_cache_key string;

         緩存中用于“鍵”的內容;

         默認值:proxy_cache_key $scheme$proxy_host$request_uri;

   6、proxy_cache_valid [code …] time;

        定義對特定響應碼的響應內容的緩存時長;

      7、proxy_cache_use_stale

          用法:proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off …;

          如果Nginx在訪問被代理服務器過程中出現被代理服務器無法訪問或者訪問錯誤等現象時,Niginx服務器可以使用歷史緩存響應客戶端的請求,這些數據不一定和被代理服務器上的最新的數據相一致,但對于更新頻率不高的后端服務器來事,nginx服務器的該功能在一定程度上能夠為客戶端提供不間斷訪問

       8、proxy_cache_methods GET | HEAD | POST …;

          根據客戶端請求報文請求方式,來選著需要緩存的數據

      9proxy_hide_header field;

          該指令用于設置nginx服務器在發送響應報文時,隱藏一些頭信息

     10proxy_connect_timeout time;

          該指令來設定nginx服務器域后端被代理服務器嘗試連接的超時時間。默認為60s;最長為75s;

     11proxy_read_timeout time;

          該指令設置nginx服務器向后端被代理服務器發出read請求后,等待響應的超時時間

     12proxy_send_timeout time;

          該指令設置nginx服務器向后端被代理服務器發出write請求后,等待響應的超時時間 

三、ngx_http_headers_module模塊

     該模塊:向由代理服務器響應給客戶端的響應報文添加自定義首部,或修改指定首部的值;

   1、add_header name value [always];

        添加自定義首部;

        add_header X-Via  $server_addr;

         add_header X-Accel $server_name;

  2、expires [modified] time;

        expires epoch | max | off;

      用于定義Expire或Cache-Control首部的值;

四、配置反向代理服務lnamp

      實現lnamp: http, 提供wordpress;

     拓撲:

          Nginx之ngx_http_proxy_module模塊詳解

一、數據庫配置(192.168、109、131

    1、安裝數據庫mariadb-server

yum install mariadb-server

     2、修改配置文件

        vim /etc/my.cnf.d/server.cnf

        Nginx之ngx_http_proxy_module模塊詳解

3、啟動服務

               Nginx之ngx_http_proxy_module模塊詳解

          4、創建數據庫(wordpress)并授權用戶zq

              Nginx之ngx_http_proxy_module模塊詳解  

二、配置后端httpd服務(192.168.109.1

1、安裝包

   Yum install httpd php php-mysql php-mbstring php-mcrypt(此包在epel倉庫中)

2、定義虛擬主機

           Nginx之ngx_http_proxy_module模塊詳解

3.創建URL目錄

          并在此目錄下下載wordpress包解壓

   Nginx之ngx_http_proxy_module模塊詳解 

4.創建wordpress包的配置文件

          Vim wp-config.php

          Nginx之ngx_http_proxy_module模塊詳解

      5、啟動服務

         Systemctl start httpd.sevice

三、反向代理服務器配置(192.168.109.129)

1、安裝包

  Yum install nginx

2、定義代理緩存路徑

          Nginx之ngx_http_proxy_module模塊詳解

3、配置虛擬主機

           Vim  /etc/nginx/conf.d/vir.conf

           Nginx之ngx_http_proxy_module模塊詳解

 

     4、啟動服務

         Systemctl start nginx.service

  四、測試

     輸入http://www.zl.com/wordpress

        Nginx之ngx_http_proxy_module模塊詳解

    查看緩存

     Nginx之ngx_http_proxy_module模塊詳解

    看一看到能夠正常緩存數據,站點配置正常

 

 

 

 

 

原創文章,作者:zq,如若轉載,請注明出處:http://www.www58058.com/78494

(0)
zqzq
上一篇 2017-06-24
下一篇 2017-06-25

相關推薦

  • N28-第四周:正則表達式練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2017-12-24
  • 計算機入門

    Linux入門 與 計算機

    Linux干貨 2018-02-07
  • 文本處理工具

    分頁查看文件內容 less和more命令介紹 分頁查看文件內容:less和more less:一頁一頁地查看文件或STDIN輸出   # less FILE less的快捷鍵:     Ctrl+u:向上翻半屏     Ctrl+d:向下翻…

    Linux干貨 2016-08-07
  • 防火墻原理以及iptables重要實踐

    防火墻 主機間通信大致過程: 請求報文由客戶端IP+PORT和服務器端IP+PORT構成。當客戶端網絡地址和服務端地址在同一網段時,不需要經由路由轉發,可以直接到目標服務器,再經由服務器端口請求道所需資源; 當服務器端和客戶端不在同一網段時。目標IP和源IP是不會改變的,會經由互聯網中的路由器,按照其的路由表,指向該路由器的下一跳主機,知道找到服務器端所在網…

    2017-06-18
  • TCP常見問題總結

    TCP協議和UDP協議的區別是什么 TCP協議是有連接的,有連接的意思是開始傳輸實際數據之前TCP的客戶端和服務器端必須通過三次握手建立連接,會話結束之后也要結束連接。而UDP是無連接的 TCP協議保證數據按序發送,按序到達,提供超時重傳來保證可靠性,但是UDP不保證按序到達,甚至不保證到達,只是努力交付,即便是按序發送的序列,也不保證按序送到。 TCP協議…

    Linux干貨 2017-09-02
  • 分享 (History,Ls,感悟 )

    1.History 選項   -c: 清空命令歷史   -d offset: 刪除歷史中指定的第offset個命令    n: 顯示最近的n條歷史   -a: 追加本次會話新執行的命令歷史列表至歷史文件   -n: 讀歷史文件中未讀過的行到歷史列表   -r: 讀歷史文件附加到歷史列表 &…

    2017-07-15
欧美性久久久久