tomoya06 / web-developer-guidance

Actually it's just a notebook for keeping down some working experience.
4 stars 0 forks source link

Network - 代理以及其他通信数据转发 #26

Open tomoya06 opened 3 years ago

tomoya06 commented 3 years ago

通信数据转发

代理

代理服务器分为正向代理和反向代理两种:

正向代理 aka. Proxy

代理一般都指的是正向代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。

为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。

eg.:VPN代理即为正向代理。

image

分类

反向代理 aka. Reverse Proxy

反向代理在电脑网络中是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端。

在反向代理中,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器集群的存在;但正向代理中,客户端一开始就知道服务器的IP地址,当然也要知道代理服务器的IP。

image

下图是一个生动形象の手绘图,来区分正向代理和反向代理。

image

实践

nginx可以配置正向代理和反向代理。其中反向代理使用较多。Nginx的更多用法参考另一条issue

1. 正向代理

server {  
    resolver 192.168.1.1; #指定DNS服务器IP地址  
    listen 8080;  
    location / {  
        proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址  
    }  
}  

正向代理测试:参考这篇博客

curl  -I --proxy 192.168.10.10:80 www.baidu.com

2. 反向代理

server {
    listen       80;
    location /demo {
        proxy_pass http://127.0.0.1:8081;
    }
    location /demo1 {
        proxy_pass http://127.0.0.1:8082;
    }
}
tomoya06 commented 3 years ago

网关

网关也称协议转换器或信关,是互联网工作在OSI传输层上的设施。提供传输层到应用层全方位的服务,一般提供集中协议的服务。网关可以对数据重新分组,以便能在两个不同网络间进行通信。

隧道

使用 SSL 等加密手段,在客户端和服务器之间建立一条安全的通信线路。