Linux服务器技术教程之六代理模式
【摘要】 Nginx代理是一种网络代理方式,主要用于反向代理、负载均衡等功能。它可以将客户端的请求转发给目标服务器,并将目标服务器的响应返回给客户端。Nginx代理具有高效、稳定、易用等特点,被广泛应用于Web开发、云计算等领域。
目标
理解代理的概念
代理概念
代理是一种通过中间服务器来帮助客户端访问目标服务器的技术。代理服务器位于客户端与服务器之间,充当两者的中介,从而实现客户端和服务器之间的隔离。用户的所有请求经过代理后,再发往目标服务器,而目标服务器的响应则返回代理,再由代理传递给用户。
代理概述
代理:外卖/中介/中间商 用户无法直接做某些事情,通过中介进行处理,这个中介就是代理
用户--->代理--->web节点,后面只有一个节点,一般使用的是nginx代理功能即可,后面如果有多个节点(也就是集群)的话,需要使用nginx负载均衡功能
一、代理分类
代理分类 | 方向 | 应用 |
---|---|---|
正向代理 | 用户(服务器)--->代理--->外部(某网站) | 服务器通过代理实现共享上网/访问某个网站 |
反向代理 | 用户(app/浏览器)--->代理--->网站服务器(WEB) | 给网站设置个统一入口,后面是网站集群 |
1.1 正向代理
正向代理,指的是通过
代理服务器
代理浏览器/客户端
去重定向请求访问到目标服务器
的一种代理服务。 正向代理服务的特点是代理服务器
代理的对象是浏览器/客户端
,也就是对于目标服务器
来说浏览器/客户端
是隐藏的。
1.2 反向代理
反向代理,指的是
浏览器/客户端
并不知道自己要访问具体哪台目标服务器
,只知道去访问代理服务器
,代理服务器
再通过反向代理 +负载均衡
实现请求分发到应用服务器
的一种代理服务。 反向代理服务的特点是代理服务器
代理的对象是应用服务器
,也就是对于浏览器/客户端
来说应用服务器
是隐藏的。
三、代理实践
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代理的特点
- 高性能:Nginx代理具有高性能的特点,可以处理大量的并发请求,保证系统的稳定性。
- 负载均衡:Nginx代理可以通过配置负载均衡策略,将请求分配给多个目标服务器,提高系统的可扩展性和可靠性。
- 缓存:Nginx代理可以对请求进行缓存,减少对目标服务器的访问次数,提高系统的响应速度和性能。
- 加密:Nginx代理可以对请求和响应进行加密,保证数据传输的安全性。
- 易于配置和管理:Nginx代理的配置和管理相对简单,可以通过配置文件进行设置和管理。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)