一、反向代理基本配置
1、概念
正向代理:指客户端与目标服务器之间增加一个代理服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 。这个过程当中客户端需要知道代理服务器地址,并配置连接。
反向代理:反向代理是指 客户端访问目标服务器,在目标服务内部有一个统一接入网关将请求转发至后端真正处理的服务器并返回结果。这个过程当中客户端不需要知道代理服务器地址,代理对客户端而言是透明的。
正向代理和反向代理的区别
|
正向代理 |
反向代理 |
代理服务器位置 |
客户端与服务都能连接的们位置 |
目标服务器内部 |
主要作用 |
屏蔽客户端IP、集中式缓存、解决客户端不能直连服务端的问题。 |
屏蔽服务端内部实现、负载均衡、缓存。 |
应用场景 |
爬虫、翻墙、maven 的nexus 服务 |
Nginx 、Apache负载均衡应用 |
2、Nginx的代理基本配置
Nginx 代理只需要配置 location 中配置proxy_pass 属性即可。其指向代理的服务器地址;
正向代理:
# 正向代理到baidu 服务
location = /baidu {
proxy_pass http://www.baidu.com/;
}
反向代理 :
# 反向代理至 本机的8010服务
location /yufeng {
proxy_pass http://127.0.0.1:8080/;
}
正向代理和反向代理在技术的实现上没有什么区别,需要看具体的应用场景是什么;
代理相关参数:
proxy_pass # 代理服务
proxy_redirect off; # 是否允许重定向
proxy_set_header Host $host; # 传 header 参数至后端服务
proxy_set_header X-Forwarded-For $remote_addr; # 设置request header 即客户端IP地址
proxy_connect_timeout 90; # 连接代理服务超时时间
proxy_send_timeout 90; # nginx将请求发送给目标服务器的最大时间
proxy_read_timeout 90; # 从目标服务器读取最大时间
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
3、负载均衡配置与参数解析
通过proxy_pass 可以把请求代理至后端服务,但是为了实现更高的负载及性能, 我们的后端服务通常是多个, 这个是时候可以通过 upstream 模块实现负载均衡。