1. 首页 > 科技快讯 >

nginx反向代理三种模式(nginx反向代理配置教程)

您好,今天小爱来为大家解答以上的问题。nginx反向代理三种模式相信很多小伙伴还不知道,现在让我们一起来看看吧!

nginx反向代理三种模式(nginx反向代理配置教程)nginx反向代理三种模式(nginx反向代理配置教程)


1、一:Nginx作为正向代理服务器:1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代理不支持从外网向内网访问资源,一般很少用,经本人测试,效果也不好,有很多页面打不开,在百度搜索的页面也无法返回。

2、server {2.错误码502 :Nginx作为代理服务器向后端转发请求过程中超时。

3、二:Nginx作为反向代理服务器:反向代理:反向代理也叫reverse proxy,指的是代理外网用户的请求到内部的指定web服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式。

4、反向代理的常用指令:1.proxy_pass:用来设置将请求转发给的后端服务器的主机,可以是主机名、IP地址:端口的方式,也可以代理到通过upstream设置的主机组,如下:upstream webserver {2:proxy_hide_header:用于nginx服务器作为反向代理的时候,在返回给客户端http响应的时候,隐藏后端服务版本(如php版本)的信息,可以设置在http/server或location块,如下:Nginx会将上游服务器的响应转发给客户端,但默认不会转发以下HTTP头部字段:Date、Server、X-Pad和X-Accel-*。

5、使用proxy_hide_header后可以任意地指定哪些HTTP头部字段不能被转发。

6、例如:proxy_hide_header Cache-Control;注:如果是nginx直接作为web服务器,要隐藏版本信息的话,使用fastcgi_hide_header:3:proxy_pass_header:与proxy_hide_header功能相反,proxy_pass_header会将原来禁止转发的header设置为允许转发,可以设置在http/server或location块例如:proxy_pass_header X-Accel-Redirect;4:proxy_pass_request_body:是否向后端服务器发送HTTP包体部分,可以设置在http/server或location块,如下:proxy_pass_request_body on|off; #默认为on5:proxy_pass_request_headers:是否将客户端的请求头部转发给后端服务器,可以设置在http/server或location块,如下:proxy_pass_request_headers on | off; #默认为on6:proxy_set_header:可以更改或添加客户端的请求头部信息内容,并转发之后端服务器,比如在后端服务器想要获取客户端的真实IP的时候,就要更改每一个报文的头部,如下:proxy_set_header HOST $remote_addr; #添加HOST到报文头部,其值为客户端的公网IP地址7:proxy_set_body:更改nginx服务器接收到的客户端请求的请求内容,然后将修改后的请求转发给后端的服务器,用法如下:proxy_set_body value; #其中value为要修改的目标内容,可以是变量、文本或者变量的组合。

7、8:proxy_ip:Nginx 0.8.22版本及以上支持此功能,用于Nginx配置了多个基于域名或IP的主机的情况下,可以指定代理连接到特定的主机处理,就是强制将客户端请求绑定到指定的IP地址:proxy_bind x.x.x.x;9:proxy_connect_timeout:配置nginx服务器与后端服务器尝试建立连接的超时时间,默认为60秒,用法如下:proxy_connect_timeout 10s; #10s为自定义nginx与后端服务器建立连接的超时时间10:proxy_read_time:配置nginx服务器向后端服务器或服务器组发起read请求后,等待的超时时间:proxy_read_time 10s; #默认为60秒11:proxy_send_time; 配置nginx项后端服务器或服务器组发起write请求后,等待的超时时间:proxy_send_time 10s; #默认为60s12:proxy_http_version:用于设置nginx提供代理服务的HTTP协议的版本:proxy_http_version 1.0|1.1;13:proxy_method:设置nginx服务器请求后端服务器时使用的方法,一般为POST或者GET,客户端的请求方法将被忽略:proxy_method GET|PUT;14:proxy_ignore_client_abort:设置在客户端网络中断请求时,nginx服务器是否中断对被代理服务器的请求:proxy_ignore_client_abort off|on; #默认为off,当客户端网络中断请求时,nginx服务器中断其对后端服务器的请求。

8、15:proxy_ignore_headers:设置nginx不处理后端服务器返回的数据中包含某些指定字段的报文,可以指定的有:”X-Accel-Redirect”, “X-Accel-Expires”, “Expires”或”Cache-Control”:proxy_ignore_headers Expires;16:proxy_redirect:修改后端服务器返回的响应头部中的location货refresh,与proxy_pass配合使用:17:proxy_intercept_errors:设置nginx服务器返回客户端的错误状态,当后端服务器返回大于等于400的错误码的是,如果本功能是打开的,则nginx服务器返回自定义的错误页面(使用error page定义的),如果没有开启就将后端服务器返回的HTTP状态直接返回给客户端,默认为关闭:proxy_intercept_errors on | off;18:proxy_headers_hash_max_size:设置nginx保存HTTP报文头的hash表的上限,默认为512字节:proxy_headers_hash_bucket_size 512;#申请nginx保存HTTP报文头的hash表的空间大小,默认为64个字节19:proxy_headers_hash_bucket_size:#申请nginx保存HTTP报文头的hash表的空间大小,默认为64个字节proxy_headers_hash_bucket_size 512; #默认为64字节20:proxy_net_upstream:当使用了upstream的时候,可以定义在发生了特定的情况下将请求依次交给下一个组内的服务器处理,状态包括:proxy_next_upstream http_404 http_502; //让404报错进入max_fails计数 upstream online {21:proxy_ssl_session_reuse:配置是否基于SSL协议与后端服务器建立连接,如下:proxy_ssl_session_reuse on | off;。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息