Nginx的正向、反向代理配置及区别

之前去面试,面试官看到我的一个项目中用到了Nginx,感觉挺有意思,就随口说:你这个项目还用Nginx来实现动静分离的负载均衡呢?我:嗯呢~(心里可把我牛逼坏了^_^)

之后面试官就说:你来说说Nginx的详细配置吧!我:~_~。当时只记得需要配置监听域名和端口,记得不是太清。瞬间被打脸。。。所以还是好好再复习一下>_<

 

首先:

代理:Nginx和正向代理

正向代理:客户端无法访问网站

正向代理: 原因是 客户端 ---X--- 网站,客户端不能直接访问某个网站 解决: 客户端 ----> 代理服务器(发起访问请求) ----> 某个想要访问的网站 客户端 <---- 代理服务器(响应的内容) <---- 某个想要访问的网站

反向代理

客户端是无感知代理存在的,反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

对于客户端而言该服务器就像原始服务器,因为客户端不需要进行任何的设置就能使用,客户端向反向代理命名空间发起网络请求,实际上反向代理立马转发原始服务器,原始服务器将响应内容传递给反向代理服务器,再由服务器发给客 户端.就好像内容是自己的一样.

正反向代理服务器的区别

正向代理用途:

 1 为在防火墙内的局域网客户端提供访问Internet的途径,如google网站

 2 可以做缓存,加速访问资源

 3 对客户端访问授权,上网进行认证

 4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

 正向代理中,代理服务器proxy与客户端client同属于一个LAN局域网,对server透明 反向代理中,代理服务器proxy与server同属一个LAN局域网,对client透明

反向代理用途:

 1 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。

 2 负载均衡,通过反向代理服务器来优化网站的负载,反向代理服务器根据每个服务器的性 能来分配请求,保证服务器的负载能在有效的范围内

配置:

Nginx应拷贝到当前系统没有中文路径和空格的文件夹中

Nginx 的正向代理配置

nginx接受来自客户端的大量访问进行平均分发到后端多个服务器进行处理,单个nginx服务器可支持过万的并发量,很好的解决高并发的web类访问,同时通过nginx服务可以做到内网与外网的物理隔离.

nginx服务器配置:

1 Nginx server:(例如: 内网地址:10.0.0.136,外网地址:172.16.27.64)

2 使用VirtualBox Manager虚拟出双网卡,ifconfig查看ip 

3 cat ***.conf进行编辑

nginx-clicent配置:
1 client无法访问内网网卡,通过nginx server去访问internet
2 export http_proxy=http://10.0.0.136:80 #设定环境变量,指定代理服务器的ip及端口 
3 在进行访问就可以通过代理服务器了

 

以上是正向代理(linux)

以上来自:https://blog.csdn.net/hiyun9/article/details/51602428

下面是反向代理(windows),原理都差不多

用到的文件结构:

conf:启动时加载的核心配置文件nginx.conf

logs:使用过程中常查看的日志error.log

提及一些基本命令:

启动的命令  start nginx

停止的命令 nginx -s stop

CMD命令提示符必须进入nginx的根目录执行

还是***.conf文件:

Nginx的正向、反向代理配置及区别_第1张图片

实现需求:

  • 确定域名访问的是nginx所在服务器,hosts文件的ip映射
  • 修改配置文件实现监听80和代理域名(虚拟域名)的server和location转发

代理转发流程图:

Nginx的正向、反向代理配置及区别_第2张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(面试)