Nginx正向代理与反向代理的简单例子
2020-07-15 05:43
1611 查看
代理简介
正向代理
正向代理代理的是client。
例如:有些网址我们在本地无法直接访问,需要在浏览器里面配置一个proxy,这个proxy就是正向代理。
server只和proxy交互,并不知道client的存在。
反向代理
反向代理代理的是server。
例如:server位于局域网之内,在外网无法直接访问,需要访问网关,然后通过网关来向内网转发request,这个proxy就是反向代理。
client只和proxy交互,并不知道server的存在。
Nginx正向代理
假如现在有2个HTTP server
A和
B,以及1个client机器
C。
- A的IP地址:192.168.1.8
- B的IP地址:192.168.1.58
A的配置如下:
server { listen 6692; server_name localhost; location / { if ( $remote_addr !~* ^192\.168\.1\.58$) { return 403; } root /Users/kaiding/temp/temp0703; index index.html; } }
可见,只能从
192.168.1.58(即server B)来访问server A。
- 从B访问:
- 从C访问:
要想让C能够访问server A,我们需要在server B上开启一个proxy server,然后让C通过B来代理其HTTP请求。
在server B上配置正向代理如下:
server { listen 6691; server_name localhost; resolver 8.8.8.8; location / { proxy_pass http://$http_host$request_uri; } }
在C的浏览器里面配置HTTP代理如下:
现在,C就可以访问到A了:
Nginx反向代理
(和刚才同样的场景)
假如现在有2个HTTP server
A和
B,以及1个client机器
C。
- A的IP地址:192.168.1.8
- B的IP地址:192.168.1.58
A的配置如下:
server { listen 6692; server_name localhost; location / { if ( $remote_addr !~* ^192\.168\.1\.58$) { return 403; } root /Users/kaiding/temp/temp0703; index index.html; } }
可见,只能从
192.168.1.58(即server B)来访问server A。
要想让C能够访问server A,我们需要在server B上开启一个proxy server来代理A,然后让C通过访问B来达到访问A的效果。
在server B上配置反向代理如下:
upstream myserverA { server 192.168.1.8:6692; } server { listen 6693; server_name localhost; location / { proxy_pass http://myserverA; } }
现在,C就可以通过访问B,来达到访问A的效果了:
注意:C的浏览器里面URL是B的地址,也就是说,C并不知道A的存在。
相关文章推荐
- nginx下载安装及实现反向代理简单例子(windows环境下)
- 20150624_OC之代理及反向代理的简单例子
- 事件委托(事件代理)的简单例子,看完就懂
- 最简单的nginx反向代理tomcat
- 最简单的nginx反向代理tomcat
- iptables 实现简单的四层反向代理服务器
- Nginx简单部署实现反向代理的功能,附带资源包
- nginx简单反向代理总结
- 借助Nginx搭建反向代理服务器实现简单负载均衡
- nginx正向代理与反向代理
- 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】
- 最简单的nginx反向代理tomcat
- Nginx 反向代理简单配置
- 简单反向代理squid配置
- 最简单的nginx反向代理tomcat
- nginx正向代理与反向代理详解
- windows下简单配置squid反向代理服务器[转]
- 反向代理之HAProxy的简单应用
- 最简单的nginx反向代理tomcat
- 一个简单的例子模拟JDK动态代理