共计 1309 个字符,预计需要花费 4 分钟才能阅读完成。
一、代理介绍
代理在网络中使用是比较常见的,比如我们说的最多的就是翻墙软件,比如 ss、蓝灯等这些大家常用的软件,他们就是能改代理大家访问国内无法访问的一些国外网站,比如 facebook、YouTube 等网站。其原理也比较简单:
1)用户将请求发给代理服务器
2)代理服务器代用户去访问数据
3)代理服务器将数据给用户
正常没有代理情况上网
代理服务器场景
代理服务器扮演的就是一个中间人的角色。
代理分为正向代理和反向代理两种类型:
正向代理:代理用户访问其他网站,比如 ss,蓝灯。
反向代理:用来发布服务器,比如 nginx
树明主要给大家介绍的是反向代理,使用反向代理发布公司的站点。(国家严厉打击私单乱建翻墙代理服务器)
二、应用场景
1)堡垒机:堡垒机承担所有的外部访问,保护后端服务器的安全
2)业务发布服务器:将多个服务器通过虚拟主机的方式发布到公网
3)缓存服务器:CDN 加速
三、反向代理原理
1) 客户端通过浏览器 发起请求 代理服务器
2)代理服务器 接受请求
3) 代理服务器 发起请求 业务服务器
4)业务服务器 接受请求
5)业务服务器 处理请求
6) 业务服务器 响应请求 代理服务器
7)代理服务器 响应请求 客户端
8)客户端通过浏览器渲染请求并展示给用户
四、反向代理实现
proxy_pass: nginx 反向代理指令
反向代理实现
location / {
index index.php index.html index.htm; #定义首页索引文件的名称
proxy_pass http://mysvr ;# 请求转向 mysvr 定义的服务器列表
}
反向代理优化
proxy_set_header Host $host; # 修改请求头,添加 Host 字段
proxy_set_header X-Real-IP $remote_addr; # 修改请求头,添加 X -Real-IP 字段
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 修改请求头,添加 X -Forwarded-For 字段
client_max_body_size 10m; # 允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx 跟后端服务器连接超时时间 \(代理连接超时 \)
proxy_send_timeout 90; # 后端服务器数据回传时间 \(代理发送超时 \)
proxy_read_timeout 90; # 连接成功后,后端服务器响应时间 \(代理接收超时 \)
proxy_buffer_size 4k; # 设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers 缓冲区,网页平均在 32k 以下的话,这样设置
proxy_busy_buffers_size 64k; # 高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; # 设定缓存文件夹大小,大于这个值,将从 upstream 服务器传