Nginx 正向代理、方向代理、端口转发

正向代理就是客户端代理,代理客户端,服务端不知道实际发起请求的客户端

Nginx 正向代理、方向代理、端口转发_第1张图片

正向代理中,proxy和client一般同一个lan或者网络可达,server与client一般不可达(缓存场景除外)

正向代理类似一个跳板机,代理访问外部资源。

正向代理的用途:

1.访问原来无法访问的资源,
2.可以做缓存,加速访问资源
3.对客户端访问授权,上网进行认证
4.代理可以记录用户访问记录,上网行为管理,同时对外隐藏信息

nginx配置

Nginx 正向代理、方向代理、端口转发_第2张图片

 

反向代理则是服务端代理,代理服务端,客户端不知道实际提供服务的服务端

Nginx 正向代理、方向代理、端口转发_第3张图片

反向代理中,proxy和server一般同属一个lan或者网络可达,client与server不可达

反向代理实际上运行方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的用途:

1.保证内网安全,阻止web攻击,大型网站,通常将反向代理作为公网访问的地址,web服务器是内网
2.负载均衡,通常反向代理服务器用来优化网络的负载。

例一,访问192.168.17.129的80 自动代理到 本机(127.0.0.1)的8080

Nginx 正向代理、方向代理、端口转发_第4张图片

例二,访问192.168.17.129的9001 根据请求路径自动分发到不同机器(隐藏后端实际服务器)Nginx 正向代理、方向代理、端口转发_第5张图片

正向代理就是买票的黄牛。
反向代理就是租房的代理。

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 正向代理、方向代理、端口转发_第6张图片

或者这种写法

Nginx 正向代理、方向代理、端口转发_第7张图片

 

检测配置文件是否正确

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

 

你可能感兴趣的:(programmer,服务器,网络,java)