ngx_http_proxy_module模块

1、proxy_pass URL;Context:location, if in location, limit_except

注意:proxy_pass后面路径不带uri时,会将location的uri传递(附加)给后端主机

server {
    ...
    server_name HOSTNAME;
    location /uri/ {
        proxy_pass http://host[:port]; 最后没有/
    }
    ...
}

上面示例:http://HOSTNAME/uri --> http://host/uri,如果上面示例中有 /,即:http://host[:port]/意味着:http://HOSTNAME/uri --> http://host/ 即置换proxy_pass后面的路径是一个uri时,其会将location的uri替换为proxy_pass的uri

server {
    ...
    server_name HOSTNAME;
    location /uri/ {
        proxy_pass http://host/new_uri/;
    }
    ...
}

访问结果:http://HOSTNAME/uri/ --> http://host/new_uri/

2、proxy_set_header field value;(Context: http, server, location)设定发往后端主机的请求报文的请求首部的值

proxy_set_header X-Real-IP(变量,可以随意定义) $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

请求报文的标准格式如下:

X-Forwarded-For: client1, proxy1, proxy2

注意:需要在后端服务器配置文件中的日志模板添加该变量

LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" " combined

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" " combined

3、proxy_cache_path;(Context:http)定义可用于proxy功能的缓存;

proxy_cache_path path [levels=levels] [use_temp_path=on|off]

keys_zone=name:size [inactive=time] [max_size=size][manager_files=number] [manager_sleep=time][manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off][purger_files=number] [purger_sleep=time] [purger_threshold=time];

4、proxy_cache zone | off;Context:http,server, location

默认off,指明调用的缓存,或关闭缓存机制;

5、proxy_cache_key string;

缓存中用于“键”的内容 默认值: proxy_cache_key $scheme$proxy_host$request_uri;

6、proxy_cache_valid [code ...] time;

定义对特定响应码的响应内容的缓存时长定义在http{...}中

示例:

proxy_cache_valid 200 302 10m;

proxy_cache_valid 404 1m;

示例:

在http配置定义缓存信息

proxy_cache_path /var/cache/nginx/proxy_cache levels=1:1:1 keys_zone=proxycache:20m inactive=120s max_size=1g;

调用缓存功能,需要定义在相应的配置段,如server{...};

proxy_cache proxycache;

proxy_cache_key $request_uri;

proxy_cache_valid 200 302 301 1h;

proxy_cache_valid any 1m;

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 ...

在被代理的后端服务器出现哪种情况下,可以真接使用过期的缓存响应客户端

8、proxy_cache_methods GET | HEAD | POST ...;

对哪些客户端请求方法对应的响应进行缓存,GET和HEAD方法总是被缓存

9、proxy_hide_header field;

默认nginx在响应报文不传递后端服务器的首部字段Date, Server, X-Pad, X-Accel-等,用于隐藏后端服务器特定的响应首部

10、proxy_connect_timeout time;

定义与后端服务器建立连接的超时时长,如超时会出现502错误,默认为60s,一般不建议超出75s,

11、proxy_send_timeout time;

将请求发送给后端服务器的超时时长;默认为60s

12、proxy_read_timeout time;

等待后端服务器发送响应报文的超时时长,默认为60s

原文地址:http://blog.51cto.com/13520924/2092552

时间: 2024-10-18 13:27:34

ngx_http_proxy_module模块的相关文章

Nginx中ngx_http_proxy_module模块

该模块允许将请求传递给另?一台服务器?指令:1 ,proxy_pass设置代理理服务器?的协议和地址以及应映射位置的可选 URI .作为协议,可以指定“ http 或 https .可以将地址指定为域名或IP地址,以及可选端?口Syntax: proxy_pass URL;Default: —Context: location, if in location,limit_except如果 proxy_pass 后?面指定了了 uri ,则其会将 location 指定的 uri 给替换掉loca

09-ngx_http_proxy_module模块

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-F

80-nginx_http_proxy,upstream,stream模块简析

一. ngx_http_proxy_module模块: 模块功能: 为后端httpd服务做反向代理, 并且与Httpd 之间使用http进行通信 1.proxy_pass URL; Context: location, if in location, limit_except 当root 与proxy_pass 同时存在是,proxy 优先级更高 ---------------------------------------------------------------------------

http_proxy_module 模块

一.proxy_pass 指令 proxy_pass 指令属于 ngx_http_proxy_module 模块,此模块可以将请求转发到另一台服务器,在实际的反向代理工作中,会通过 location 功能匹配指定的 URI ,然后把接收到的符合匹配 URI 的请求通过 proxy_pass 抛给定义好的 upstream 节点池 location /name/ { # 使用案例 proxy_pass http://127.0.0.1/remote/; } 二.http proxy 模块参数 (1

nginx添加 nginx_heath模块

原因?为什么会使用nginx_heath 这个模块,主要是如nginx+tomcat部署的时,tomcat挂了之后nginx->upstream 轮询是可以踢掉挂掉的tomcat服务的,如果部署的机器挂了之后nginx轮询是不能踢掉的,如果服务再去请求,就会出现请求超时! 1.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带) 官网地址:http://nginx.org/cn/docs/http/ngx_http_proxy_modul

Nginx负载均衡组件模块

Nginx负载均衡组件模块 实现Nginx负载均衡的组件主要有两个: n  ngx_http_proxy_module proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池 n  ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查 1.upstream模块 upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过proxy_pass代理方式把网站的请求发送到事先定义好的对应upstream组的名字上,

nginx下后端节点realserverweb健康检测模块ngx_http_upstream_check_module

本文章收录做资料使用,非本人原创,特此说明. 公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查.目前,nginx对后端节点健康检查的方式主要有3种,这里列出: 1.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带) 官网地址:http://nginx.org/cn/docs/http/ngx_http_proxy_module.html#proxy_next_upstream 2.nginx

Nginx4大模块——proxy、headers、upstream、stream模

一:ngx_http_proxy_module 反向代理( reverse proxy) 方式是指用代理服务器来接受 Internet 上的连接请求, 然后将请求转发给内部网络中的上游服务器, 并将从上游服务器上得到的结果返回给 Internet 上请求连接的客户端, 此时代理服务器对外的表现就是一个 Web 服务器. 充当反向代理服务器也是 Nginx 的一种常见用法( 反向代理服务器必须能够处理大量并发请求), 下面将介绍Nginx作为 HTTP 反向代理服务器的基本用法.由于Nginx具有

Nginx - upstream 模块及参数测试

目录 - 1. 前言- 2. 配置示例及指令说明    - 2.1 配置示例    - 2.2 指令    - 2.3 upstream相关变量- 3. 参数配置及测试    - 3.1 max_fails 和 fail_timeout    - 3.2 proxy_next_upstream    - 3.3 nginx 与后端web连接时间的三个参数 1. 前言 当 Nginx 作为反向代理使用的时候,upstream模块有着举足轻重的地位,官方解释: 2. 配置示例及指令说明 2.1 配置