Nginx代理模塊允許傳遞請求到其它的服務器。
指令
Syntax: proxy_bind address | off;
Default: —
Context: http, server, location
This directive appeared in version 0.8.22.
強制將與代理本機連接綁到指定IP地址,通俗來講就是配置了多個基於名稱或者基於IP的主機情況下,如果希望代理連接由指定的主機處理,就可以使用該指令進行配置。
當值爲off,系統自動分配本機IP地址。
Syntax: proxy_buffer_size size;
Default: proxy_buffer_size 4k|8k;
Context: http, server, location
設置第一次從代理服務器收到的響應的buffer的大小。這部分通常包含小的響應頭部。默認,buffer大小等於內存頁大小。可以是4K或8K,依賴於系統平臺。當然也可以更小。
Syntax: proxy_buffering on | off;
Default: proxy_buffering on;
Context: http, server, location
開啓或關閉代理服務器的響應buffer功能。當nginx收到代理服務器的響應時候,它通過proxy_buffer_size和proxy_buffer指令設置。如果正響應沒有合適的內存,部分可以保存在temporary_file裏面。寫入內存則通過proxy_max_temp_file_size 和 proxy_temp_file_write_size指令來設置。
當buffering關閉的時候,請求傳遞到客戶端是同步的,當nginx收到響應的時候,立即回覆。收到響應數據的最大大小可以被proxy_buffer_size指令設置。
bufferring可以開啓或禁止傳遞yes或no在”X-Accel-Buffering”響應頭部中設置。這個能力可以使用proxy_ignore_headers指令禁止。
Syntax: proxy_buffers number size;
Default: proxy_buffers 8 4k|8k;
Context: http, server, location
類似於gzip_buffers不在敘述。
Syntax: proxy_busy_buffers_size size;
Default: proxy_busy_buffers_size 8k|16k;
Context: http, server, location
該指令限制同時處於busy狀態的buffer大小,默認size爲兩倍的proxy_buffer_size和proxy_buffer指令的大小。
Syntax: proxy_cache zone | off;
Default: proxy_cache off;
Context: http, server, location
定義一個用於緩存的的共享內存區間,同樣的區間可以被用在幾個位置。參數值可以包含變量。off參數禁止緩存。
Syntax: proxy_cache_bypass string ...;
Default: —
Context: http, server, location
定義一個條件,什麼響應不會從cache中獲取。如果字符串參數至少一個值而且不爲空,那麼響應不會從cache中獲取。
proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
proxy_cache_bypass $http_pragma $http_authorization;
可以同proxy_no_cache指令一起使用。
Syntax: proxy_cache_convert_head on | off;
Default: proxy_cache_convert_head on;
Context: http, server, location
This directive appeared in version 1.9.7.
開啓或禁止或禁止HRAD方法會話。當會話被禁止了,cache_key應該被配置爲包含$request_method
Syntax: proxy_cache_key string;
Default: proxy_cache_key $scheme$proxy_host$request_uri;
Context: http, server, location
定義緩存的key,例如。
proxy_cache_key "$host$request_uri $cookie_user";
默認這個指令的值緊跟着字符串
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
Syntax:proxy_cache_lock on | off;
Default:proxy_cache_lock off;
Context:http, server, location
當開啓之後,只有一個請求在一段時間內被允許填充新的cache元素,根據proxy_cache_key指令來標示是什麼cache傳遞到代理服務器。其它相同cache的請求要麼等待cache中的響應,要麼鎖住這個cahe釋放,根據proxy_cache_lock_timeout指令來設置。
Syntax: proxy_cache_lock_age time;
Default: proxy_cache_lock_age 5s;
Context: http, server, location
如果最近的請求傳遞到被代理的服務器來填充新的cache元素,還沒有完成,一個或更多請求可以被傳遞到代理服務器。
Syntax: proxy_cache_lock_timeout time;
Default: proxy_cache_lock_timeout 5s;
Context: http, server, location
設置proxy_cahce_lock的超時時長,當time過期的時候,這個請求會傳遞到被代理的服務器,不管怎麼樣,響應不會被cached。
Before 1.7.8, the response could be cached.
Syntax: proxy_cache_methods GET | HEAD | POST ...;
Default: proxy_cache_methods GET HEAD;
Context: http, server, location
客戶端的請求方法列出在這個指令中,然後想要被cached,”GET”和”HEAD”方法一直被加入這個list中,儘管官方要求精確的指定方法。
Syntax: proxy_cache_min_uses number;
Default: proxy_cache_min_uses 1;
Context: http, server, location
在響應數據被cached之後,發送給客戶端的次數。
Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
Default: —
Context: http
設置cahe的路徑和其它參數,cache數據存儲在文件裏面,這個文件名是在cache中爲應用MD5函數的結果。levels參數定義cache的層級關係。例如,在下面的配置中
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
文件名看起來就像這樣
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
Syntax: proxy_cache_purge string ...;
Default: —
Context: http, server, location
This directive appeared in version 1.5.7.
定義一個條件,什麼請求會被看做清除cache的請求。類似於proxy_cache_bypass。
案例:
proxy_cache_path /data/nginx/cache keys_zone=cache_zone:10m;
map $request_method $purge_method {
PURGE 1;
default 0;
}
server {
...
location / {
proxy_pass http://backend;
proxy_cache cache_zone;
proxy_cache_key $uri;
proxy_cache_purge $purge_method;
}
}
Syntax: proxy_cache_revalidate on | off;
Default: proxy_cache_revalidate off;
Context: http, server, location
開啓cache重用功能,如果請求使用了”If-Modified-Since”和”If-None-Match”頭部元素。
Syntax: proxy_cache_valid [code ...] time;
Default: —
Context: http, server, location
爲不同的響應碼設置不同的cache時間
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
指令實在是太多,請參考原文
http://nginx.org/en/docs/http/ngx_http_proxy_module.html
實例:
upstrean videobackend
{
server 192.168.1.2:80;
server 192.168.1.3:80;
server 192.168.1.4:80;
}
upstream filebackend
{
server 192.168.1.5:80;
server 192.168.1.6:80;
server 192.168.1.7:80;
}
server
{
listen 80;
server_name www.myweb.com
index index.html index.htm;
location /video/ {
proxy_pass http://videobackend;
proxy_set_header host $host ;
……
}
location /file/ {
proxy_pass http://filebackend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
……
}
}
Nginx代理功能(未完)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
新版Nginx1.17体系化深度精讲 给开发和运维的刚需课程
wy53780
2020-04-23 14:03:13
nignx 負載均衡的幾種算法介紹
jungiewolf
2019-02-23 00:35:55
consul + Nginx 實現nginx代理自動載入backed的服務器, 實現fullnat效果
tianshuai369
2019-02-23 00:34:58
Ubuntu14.04搭建LNMP平臺
海龍s
2019-02-23 00:30:46
Nginx Web服務應用
yuanxingdexin
2019-02-23 00:30:46
CentOS5.5下Nginx的安裝配置詳解
huanjie6
2019-02-23 00:29:23
Nginx
gao491852809
2019-02-23 00:20:05
Nginx配置pathinfo
小海哥2010
2019-02-23 00:19:23
Apache與Nginx的優缺點比較
資本丿
2019-02-23 00:18:02
如何測試Nginx的高性能
xxrenzhe11
2019-02-22 23:58:35
Nginx如何實現反向代理
xxrenzhe11
2019-02-22 23:58:35
搭建Nginx服務器
天亮說再見
2019-02-22 23:56:57
ngx_http_rewrite_module模塊
與你共時
2019-02-22 23:55:02