一、正反向代理簡介
1、正向代理:局域網內的機器借助于代理服務器訪問局域網外的網站
這時正向代理的功能:
(1)、增強局域網內部網絡安全
(2)、利用正向代理可以堆局域網對外網的訪問進行必要的監控和管理
注意:正向代理服務不支持外不對內部網絡的請訪問求
2、與正向代理相反,如果局域網向外網提供資源,讓外網上的其他用戶可以訪問局域網內的資源,這時候可以設置一個代理服務器,而這個代理服務器它提供服務就叫做反向代理服務器
二、ngx_http_proxy_module模塊常見指令解釋:
ngxhttpproxymodule模塊允許將請求傳遞給另一個服務器
1、proxy_pass URL;
該指令用于設置被代理服務器的協議、主機名、IP地址和端口等形式。
Context: location, if in location, limit_except
注意:proxy_pass后面的路徑不帶uri時,其會將location的uri傳遞給后端主機;
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服務器在發送響應報文時,隱藏一些頭信息
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
實現lnamp: http, 提供wordpress;
拓撲:
一、數據庫配置(192.168、109、131)
1、安裝數據庫mariadb-server
yum install mariadb-server
2、修改配置文件
vim /etc/my.cnf.d/server.cnf
3、啟動服務
4、創建數據庫(wordpress)并授權用戶zq
二、配置后端httpd服務(192.168.109.1)
1、安裝包
Yum install httpd php php-mysql php-mbstring php-mcrypt(此包在epel倉庫中)
2、定義虛擬主機
3.創建URL目錄
并在此目錄下下載wordpress包解壓
4.創建wordpress包的配置文件
Vim wp-config.php
5、啟動服務
Systemctl start httpd.sevice
三、反向代理服務器配置(192.168.109.129)
1、安裝包
Yum install nginx
2、定義代理緩存路徑
3、配置虛擬主機
Vim /etc/nginx/conf.d/vir.conf
4、啟動服務
Systemctl start nginx.service
四、測試
輸入http://www.zl.com/wordpress
查看緩存
看一看到能夠正常緩存數據,站點配置正常
原創文章,作者:zq,如若轉載,請注明出處:http://www.www58058.com/78494