Nginx反向代理服务的配置

1、proxy_pass指令

该指令用来设置被代理服务器的地址,可以是主机名称、IP地址加端口号等形式。其语法结构为:

proxy_pass URL;

其中,URL为要设置的被代理服务器的地址,包含传输协议、主机名称或IP地址加端口号、URI等要素。传输协议通常是“http”或者“https”。指令同时还接受以“unix”开始的UNIX-domain套接字路径。

2、proxy_hide_header指令

该指令用于设置Nginx服务器在发送HTTP响应时,隐藏一些头域信息。其语法结构为:

proxy_hide_header field;

其中,field为需要隐藏的头域。该指令可以在http块、server块或者location块中进行配置。

3、proxy_pass_header指令

默认情况下,Nginx服务器在发送响应报文时,报文头中不包含“Date”、“Server”、“X-Accel”等来自被代理服务器的头域信息。该指令可以设置这些头域信息以被发送,其语法结构为:

proxy_pass_header field;

其中,field为需要发送的头域。该指令可以在http块、server块或者location块中进行配置。

4、proxy_pass_request_body指令

该指令用于配置是否将客户端请求的请求体发送给代理服务器,其语法结构为:

proxy_pass_request_body on | off;

默认设置为开启(on),开关可以在http块、server块或者location块中进行配置。

5、proxy_pass_request_headers指令

该指令用于配置是否将客户端请求的请求头发送给代理服务器,其语法结构为:

proxy_pass_request_headers on | off;

默认设置为开启(on),开关可以在http块、server块或者location块中进行配置。

6、proxy_set_header指令

该指令可以更改Nginx服务器接收到客户端请求的请求头信息,然后将新的请求头发送给被代理的服务器,其语法结构为:

proxy_set_header field value;

field:要更改的信息所在的头域。

value:更改的值,支持使用文本、变量或者变量的组合。

7、proxy_set_body指令

该指令可以更改Nginx服务器接收到的客户端请求的请求体信息,然后将新的请求体发送给被代理的服务器,其语法结构为:

proxy_set_body value;

其中,value为更改的信息,支持使用文本、变量或者变量的组合。

8、proxy_bind指令

该指令可以强制将与代理主机的连接绑定到指定的IP地址。通俗来讲就是,在配置了多个基于名称或者基于IP的主机的情况下,如果我们希望代理连接由指定的主机处理,就可以使用该指令进行配置,其语法结构为:

proxy_bind address;

其中,address为指定主机的IP地址

9、proxy_connect_timeout指令

该指令配置Nginx服务器与后端被代理服务器尝试建立连接的超时时间,其语法结构为:

proxy_connect_timeout time;

其中,time为设置的超时时间,默认为60s。

10、proxy_read_timeout指令

该指令配置Nginx服务器向后端被代理服务器发出read请求后,等待响应的超时时间,其语法结构为:

proxy_read_timeout time;

其中,time为设置的超时时间,默认为60s。

11、proxy_send_timeout指令

该指令配置Nginx服务器向后端被代理服务器发出write请求后,等待响应的超时时间,其语法结构为:

proxy_send_timeout time;

其中,time为设置的超时时间,默认为60s。

12、proxy_http_version指令

该指令用于设置用于Nginx服务器提供代理服务的HTTP协议版本,其语法结构为:

proxy_http_version 1.0 | 1.1;

默认设置为1.0版本。1.1版本支持upsteam服务器组设置中的keepalive指令。

13、proxy_method指令

该指令用于设置Nginx服务器请求被代理服务器时使用的请求方法,一般为POST或者GET。设置了该指令,客户端的请求方式将被忽略,其语法结构为:

proxy_method method;

其中,method的值可以设置为POST或者GET,注意不加引号。

14、proxy_ignore_client_abort指令

该指令用于设置在客户端中断网络请求时,Nginx服务器是否中断对被代理服务器的请求,其语法结构为:

proxy_ignore_client_abort on | off;

默认设置为off,当客户端中断网络请求时,Nginx服务器中断对被代理服务器的请求。

15、proxy_ignore_headers指令

该指令用于设置一些HTTP响应头中的头域,Nginx服务器接收到被代理服务器的响应数据后,不会处理被设置的头域,其语法结构为:

proxy_ignore_headers field ...;

其中,field为要设置的HTTP响应头的头域,例如:“X-Accel-Redirect”、“X-Accel-Expires”、“Expires”、“Cache-Control”或“Set-Cookie”等。

16、proxy_redirect指令

该指令用于修改被代理服务器返回的响应头中的Location头域和Refresh头域,与proxy_pass指令配合使用。比如,Nginx服务器通过proxy_pass指令将客户端的请求地址重写为被代理服务器的地址,那么Nginx服务器返回给客户端的响应头中Location头域显示的地址就应该和客户端发起请求的地址相对应,而不是代理服务器直接返回的地址信息,否则就会出问题。该指令解决了这个问题,可以把代理服务器返回的地址信息更改为需要的地址信息,其语法结构为:

结构1:proxy_redirect redirect replacement;

结构2:proxy_redirect default;

结构3:proxy_redirect off;

redirect:匹配Location头域值的字符串,支持变量的使用和正则表达式。

replacement:用于替换redirect变量内容的字符串,支持变量的使用。

结构2使用default,代表使用location块的URI变量作为replacement,并使用proxy_pass变量作为redirect。

使用结构3可以将当前作用域下所有的proxy_redirect指令配置全部设置为无效。

17、proxy_intercept_errors指令

该指令用于配置一个状态是开启还是关闭。在开启该状态时,如果被代理的服务器返回的HTTP状态代码为400或者大于400,则Nginx服务器使用自己定义的错误页了;如果是关闭该状态,Nginx服务器直接将被代理服务器返回的HTTP状态返回给客户端,其语法结构为:

proxy_intercept_errors on | off;

18、proxy_headers_hash_max_size指令

该指令用于配置存放HTTP报文头的哈希表的容量,其语法结构为:

proxy_headers_hash_max_size size;

其中,size为HTTP报文头哈希表的容量上限,默认为512个字符。

19、proxy_headers_hash_bucket_size指令

该指令用于设置Nginx服务器申请存放HTTP报文头的哈希表容量的单位大小,其语法结构为:

proxy_headers_hash_bucket_size size;

其中,size为设置的容量,默认为64个字符。

20、proxy_next_upstream指令

在配置Nginx服务器反向代理功能时,如果使用upstream指令配置了一组服务器作为被代理服务器,服务器组中各服务器的访问规则遵循upstream指令配置的轮询规则,同时可以使用该指令配置在发生哪些异常情况时,将请求顺次交由下一个组内服务器处理,其语法结构为:

proxy_next_upstream status ...;

其中,status为设置的服务器返回状态,可以是一个或者多个。这些状态包括:

error:在建立连接、向被代理的服务器发送请求或者读取响应头时服务器发生连接错误。

timeout:在建立连接、向被代理的服务器发送请求或者读取响应头时服务器发生连接超时。

invalid_header:被代理的服务器返回的响应头为空或者无效。

http_500 | http_502 | http_503 | http_504 | http_404:被代理的服务器返回500、502、503、504或者404状态代码。

off:无法将请求发送给被代理的服务器。

21、proxy_ssl_session_reuse指令

该指令用于配置是否使用基于SSL安全协议的会话连接被代理的服务器,其语法结构为:

proxy_ssl_session_reuse on | off;

默认设置为开启(on)状态,如果我们在错误日志中发现“SSL3_GET_FINISHED:digest check failed”的情况,可以将该指令配置为关闭(off)状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容