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將直接附加代理到的服務的之后;

   2、proxy_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;

   3、proxy_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:設置硬盤中緩存數據大大小

   4、proxy_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 …;

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

      9、proxy_hide_header field;

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

     10proxy_connect_timeout time;

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

     11、proxy_read_timeout time;

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

     12、proxy_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.168109、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 21:03
下一篇 2017-06-25 15:50

相關推薦

  • N25-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別統計這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash     echo “可登錄類型有有$(awk -F: ‘/[^\<nologin\>…

    Linux干貨 2017-03-11
  • Ansible淺談

    ansible特性:         模塊化,調用特定的模塊,完成特定的任務;         基于Python語言實現,由Paramiko、PyYAML和Jinja2三個關鍵模塊;         部署簡單,agentless; &nbs…

    Linux干貨 2016-12-15
  • 探索這個“男人”

    一、前言 正所謂了解一個命令就得了解他的用法,正好是要了解一個人就得了解他的興趣愛好,處事態度以及為人是怎么樣的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手冊)的縮寫,使用權限是所有用戶,man命令提供為linux系統在線提供了很好的幫助手冊…

    Linux干貨 2016-05-03
  • linux文本處理三劍客-sed

    sed 是什么? sed是一種流編輯器,它是文本處理中非常中的工具,在linux中被稱為linux文本處理三劍客之一,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文…

    Linux干貨 2017-03-15
  • Linux 文件管理、查看、編輯、查找命令及BASH特性

    1、文件管理類命令總結  (1)cp命令:copy                    源文件 :目標文件 :    &nbsp…

    Linux干貨 2016-10-17
  • 初識Linux

    本文對計算機組成及其功能、Linux的發行版、以及Linux的哲學思想進行了簡單的介紹;同時對Linux系統中常用的基礎命令以及如何獲取幫助信息進行了詳細的說明。

    2018-01-14
欧美性久久久久