1. 程式人生 > >09-ngx_http_proxy_module模塊

09-ngx_http_proxy_module模塊

/var/ ive post cnblogs module 反向代理 pro 內容 隱藏

ngx_http_proxy_module模塊常見指令:

1、proxy_pass URL;    該指令用於設置被代理服務器的協議、主機名、IP地址和端口等形式。
2、proxy_set_header field value;    設定發往後端主機的請求報文的請求首部的值; 
    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功能的緩存;
    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;    指明要調用的緩存,或關閉緩存機制;
5、 proxy_cache_key string; 緩存中用於“鍵”的內容;
    默認值:proxy_cache_key $scheme$proxy_host$request_uri; 
6、proxy_cache_valid [code …] time;    定義對特定響應碼的響應內容的緩存時長;
7、proxy_cache_use_stale     使用過期緩存
8、proxy_cache_methods GET | HEAD | POST …;     根據客戶端請求報文請求方式,來選著需要緩存的數據 
9、proxy_hide_header field;     該指令用於設置nginx服務器在發送響應報文時,隱藏一些頭信息
10、proxy_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,並驗證緩存功能

各節點均為centos7.2,其中controller1 節點安裝nginx實現反向代理,controller2節點安裝httpd,php,wordpress,controller3安裝mariadb。

首先controller3節點安裝mariadb,創建數據庫wordpress並授權給carl用戶

MariaDB [(none)]> create database wordpress;

MariaDB [(none)]> grant all privileges on wordpress.* to carl@% identified by jl3040265;

MariaDB [(none)]> flush privileges;

controller2節點安裝httpd,php,php-mysql,並為wordpress配置環境

yum install httpd php php-mysql

1.修改httpd主配置文件ServerName 為www.mywordpress

2.解壓縮wordpress 至/var/www/html目錄下

3.切換至wordpress目錄,cp wp-config-sample.php wp-config.php

4.配置wp-config.php,能夠啟動wordpress

controller1節點安裝nginx,配置反向代理功能

在nginx主配置文件的http配置段中加入cache配置信息

proxy_cache_path    /var/nginx      levels=1:2  keys_zone=proxycache:20M max_size=1g;

[[email protected] conf.d]# mkdir -pv /var/nginx

配置虛擬機反向代理

server {
        listen 80;
        server_name     www.test.com;
        location        /wordpress  {
                proxy_pass      http://9.110.187.121:80/;
                proxy_cache     proxycache;
                proxy_cache_key $request_uri;
                proxy_cache_methods     GET HEAD;
                proxy_cache_valid       200 302 20m;
                proxy_cache_valid       404     5m;
        }

}

訪問www.test.com 可以看到效果,ls /var/nginx 可以看到緩存的文件。

09-ngx_http_proxy_module模塊