正向代理就是客户端代理,代理客户端,服务端不知道实际发起请求的客户端
正向代理中,proxy和client一般同一个lan或者网络可达,server与client一般不可达(缓存场景除外)
正向代理类似一个跳板机,代理访问外部资源。
正向代理的用途:
1.访问原来无法访问的资源,
2.可以做缓存,加速访问资源
3.对客户端访问授权,上网进行认证
4.代理可以记录用户访问记录,上网行为管理,同时对外隐藏信息
nginx配置
反向代理则是服务端代理,代理服务端,客户端不知道实际提供服务的服务端
反向代理中,proxy和server一般同属一个lan或者网络可达,client与server不可达
反向代理实际上运行方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理的用途:
1.保证内网安全,阻止web攻击,大型网站,通常将反向代理作为公网访问的地址,web服务器是内网
2.负载均衡,通常反向代理服务器用来优化网络的负载。
例一,访问192.168.17.129的80 自动代理到 本机(127.0.0.1)的8080
例二,访问192.168.17.129的9001 根据请求路径自动分发到不同机器(隐藏后端实际服务器)
正向代理就是买票的黄牛。
反向代理就是租房的代理。
Stream的内网转发 类似隧道
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网的2333端口上使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。
1:编译或者升级nginx至版本1.9.0以上,编译过程中需带上--with-stream。
./configure --prefix=/opt/apps/nginx --with-stream make && make install
或者这种写法
检测配置文件是否正确
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
重载
nginx -s reload