Linux服务器技术教程之六代理模式

举报
tea_year 发表于 2025/01/16 20:23:22 2025/01/16
【摘要】 Nginx代理是一种网络代理方式,主要用于反向代理、负载均衡等功能。它可以将客户端的请求转发给目标服务器,并将目标服务器的响应返回给客户端。Nginx代理具有高效、稳定、易用等特点,被广泛应用于Web开发、云计算等领域。

目标

      理解代理的概念

代理概念

    代理是一种通过中间服务器来帮助客户端访问目标服务器的技术。代理服务器位于客户端与服务器之间,充当两者的中介,从而实现客户端和服务器之间的隔离。用户的所有请求经过代理后,再发往目标服务器,而目标服务器的响应则返回代理,再由代理传递给用户。

代理概述

代理:外卖/中介/中间商 用户无法直接做某些事情,通过中介进行处理,这个中介就是代理

用户--->代理--->web节点,后面只有一个节点,一般使用的是nginx代理功能即可,后面如果有多个节点(也就是集群)的话,需要使用nginx负载均衡功能

一、代理分类

代理分类 方向 应用
正向代理 用户(服务器)--->代理--->外部(某网站) 服务器通过代理实现共享上网/访问某个网站
反向代理 用户(app/浏览器)--->代理--->网站服务器(WEB) 给网站设置个统一入口,后面是网站集群

63d7c04ece5e4711a41ce42ec0aec644.png


1.1 正向代理

8caf69f16d5e44da9b432adc38eaea88.png


正向代理,指的是通过代理服务器 代理浏览器/客户端去重定向请求访问到目标服务器 的一种代理服务。 正向代理服务的特点是代理服务器 代理的对象是浏览器/客户端,也就是对于目标服务器 来说浏览器/客户端是隐藏的。

1.2 反向代理

3f4c149e09344ed6ac04e6078936e11f.png


反向代理,指的是浏览器/客户端并不知道自己要访问具体哪台目标服务器,只知道去访问代理服务器代理服务器再通过反向代理 +负载均衡实现请求分发到应用服务器的一种代理服务。 反向代理服务的特点是代理服务器 代理的对象是应用服务器,也就是对于浏览器/客户端 来说应用服务器是隐藏的。

三、代理实践

1.环境概述

角色 主机名 ip
代理 lb01 load balance (lb) 10.0.0.5/172.16.1.5
web web01 10.0.0.7/172.16.1.7
域名 proxy.cn
站点目录 /app/code/proxy/index.html
 #lb01代理机的配置
 #配置nginx源
 [root@lb01 ~]# cat /etc/yum.repos.d/nginx.repo 
 [nginx-stable]
 name=nginx stable repo
 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
 gpgcheck=1
 enabled=1
 gpgkey=https://nginx.org/keys/nginx_signing.key
 module_hotfixes=true
 #安装nginx
 [root@lb01 ~]# yum -y install nginx

2.环境准备

2.1 web服务器

 #配置代理使用的子配置文件
 [root@web01 ~]# cat /etc/nginx/conf.d/proxy.cn.conf 
 server{
     listen 80;
     server_name proxy.cn;
     root /app/code/proxy;
     error_log  /var/log/nginx/proxy.cn-error.log notice;
     access_log  /var/log/nginx/proxy.cn-access.log  main;
  
     location /{
         index index.html;   
     }   
 }
  
 #配置首页文件
 [root@web01 ~]# cat /app/code/proxy/index.html 
 web01.proxy.cn 
 #测试web服务器
 [root@web01 ~]# curl -H Host:proxy.cn http://10.0.0.7
 web01.proxy.cn

2.2 lb01代理服务器

不需要配置站点目录,仅仅配置转发即可proxy_pass

 [root@lb01 ~]# cat /etc/nginx/conf.d/proxy.cn.conf 
 server{
     listen 80;
     server_name proxy.cn;
     error_log  /var/log/nginx/proxy.cn-error.log notice;
     access_log  /var/log/nginx/proxy.cn-access.log  main;
     
     location / {
         proxy_pass http://10.0.0.7;
         proxy_set_header Host $http_host;
         proxy_set_header X-Forwarded-For $remote_addr;  
     } 
 } 
 ​
 #测试代理
 [root@lb01 ~]# curl -H Host:proxy.cn http://10.0.0.5
 web01.proxy.cn
  

补充

proxy_pass指令: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

总结

Nginx代理的特点

  1. 高性能:Nginx代理具有高性能的特点,可以处理大量的并发请求,保证系统的稳定性。
  2. 负载均衡:Nginx代理可以通过配置负载均衡策略,将请求分配给多个目标服务器,提高系统的可扩展性和可靠性。
  3. 缓存:Nginx代理可以对请求进行缓存,减少对目标服务器的访问次数,提高系统的响应速度和性能。
  4. 加密:Nginx代理可以对请求和响应进行加密,保证数据传输的安全性。
  5. 易于配置和管理:Nginx代理的配置和管理相对简单,可以通过配置文件进行设置和管理。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。