打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
9、Nginx反向代理

代理也称正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和指定的目标服务器提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的响应结果返回给客户端的过程。

相对于代理服务,反向代理对于客户端而言就是目标服务器,客户端向反向代理服务器发送请求后,反向代理服务器将该请求转发给内部网络上的后端服务器,并将从后端服务器上得到的响应结果返回给客户端。

代理和反向代理两者特性:

安全性:正向代理的客户端能够在隐藏自身信息的同时访问任意网站,这给网络安全带来了极大威胁,而反向代理的客户端只能通过外网来访问代理服务器,并不知道自己访问的是一个代理服务器,反向代理将真正的处理放在内网中,有效提供了网络安全;

功能性:正向代理的主要用途是为在防火墙内的局域网用户提供访问Internet的途径,而反向代理的主要用途是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡功能和缓存功能等。

反向代理服务器配置:

在Nginx服务器中,反向代理的配置非常简单,最主要的指令时:proxy_pass,用于设置后端服务器的地址,该地址中包括传输数据使用的协议,服务器主机名以及可选的URI资源等。

proxy_pass通常在location块中进行设置。

1、准备服务器

准备3台服务器,并且全部安装Nginx服务器。

2、配置反向代理

在其中一台服务器中配置两个不同的域名,用于请求时,将请求代理转发到指定服务器中,

例如:请求http://test.ng.test时,将请求代理到32服务器中。

具体配置如下(/usr/local/nginx/conf/nginx.conf):

请求http://test.web.com时,将请求代理到33服务器中。

在物理机hosts文件中配置两个 域名对应的IP地址

重启服务器,通过浏览器验证:

test.web.com

test.ng.test

Nginx中对于反向代理的设置还提供了其他辅助指令:

  • proxy_set_header:在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息;

  • proxy_connect_timeout:配置Nginx与后端代理服务器尝试建立连接的超时时间;

  • proxy_read_timeout:配置Nginx向后端服务器组发出read请求后,等待响应的超时时间;

  • proxy_send_timeout:配置Nginx向后端服务器组发出write请求后,等待响应的超时时间;

  • proxy_redirect:用于修改后端服务器返回的响应头中的Location和Refresh;

通过proxy_set_header指令的使用,配置实现将客户端IP传递给后端服务器:

location / {

proxy_pass http://192.168.44.33;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

  • $remote_addr:用于获取客户端真实的IP地址,

  • $proxy_add_x_forwarded_for:用于在客户端请求头字段后添加客户端地址,使用逗号分隔,且当不存在客户端请求头字段时,该变量等同于变量$remote_addr;

上篇:8、Nginx+Tomcat环境配置--Tomcat安装配置,动静分离

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
nginx反向代理,后端服务器获取真实ip原理
Nginx(三):反向代理负载均衡集群配置详解
Nginx代理websocket为什么要这样做?
解决前端开发环境中的的跨域问题
nginx中proxy
nginx配置详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服