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所在服务器,hosts文件的ip映射
  • 修改配置文件实现监听80和代理域名(虚拟域名)的server和location转发

代理转发流程图:

 

 

 

 

 

 

 

 

 

 

  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是nginx正向代理反向代理配置详解: 1. 正向代理配置 正向代理是指客户端通过代理服务器来访问其他服务器资源。在nginx中,可以通过以下配置实现正向代理: ```nginx http { # 定义代理服务器 upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com; } # 定义http服务器 server { listen 80; server_name proxy.example.com; # 定义代理规则 location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 上述配置中,我们定义了一个名为backend的代理服务器,其中包含了三个后端服务器。然后我们定义了一个名为proxy.example.com的http服务器,并在其中定义了代理规则。当客户端访问proxy.example.com时,nginx会将请求转发到backend代理服务器,并由代理服务器向后端服务器请求资源。 2. 反向代理配置 反向代理是指客户端访问代理服务器,代理服务器再将请求转发到后端服务器。在nginx中,可以通过以下配置实现反向代理: ```nginx http { # 定义http服务器 server { listen 80; server_name proxy.example.com; # 定义反向代理规则 location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 定义代理服务器 server { listen 80; server_name backend1.example.com; # 定义后端服务器规则 location / { root /var/www/backend1; index index.html; } } } ``` 上述配置中,我们定义了一个名为proxy.example.com的http服务器,并在其中定义了反向代理规则。当客户端访问proxy.example.com时,nginx会将请求转发到名为backend的后端服务器。我们还定义了一个名为backend1.example.com的代理服务器,并在其中定义了后端服务器规则。当客户端访问backend1.example.com时,nginx会将请求转发到/var/www/backend1目录下的index.html文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值