什么是反向代理
工作机制
如上图所示,客户端发出http请求后,先到达到反向代理服务器。
反向代理服务器请客户端的请求转发到后面的“MyWebsite”服务器,“MyWebsite”服务器收到来自反向代理服务器的请求后将结果返回给反回代理服务器 ,反向代理服务器再将请求返回给客户端。
反向代理服务器是在WEB服务器之前,它可以实现负载均衡和安全验证等功能。
使用场景
- 反向代理可以解决浏览器跨域问题;
- 实现流量负载均衡;
关键词:反向代理,代理的是WEB服务器。
nginx配置文件
反向代理
upstream backend {
server 127.0.0.1:8080;
}
log_format timing '$remote_addr - $remote_user [$time_local] '
'$request $status $body_bytes_sent '
'$http_referer $http_user_agent '
'upstream_response_time $upstream_response_time '
'msec $msec request_time $request_time';
server {
listen 80;
server_name 域名或ip地址 多个用空格隔开;
access_log /var/log/nginx/proxylog.log timing;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://backend;
}
什么是正向代理
工作机制
客户发出的HTTP请求,先到达nginx__正向代理服务器,正向代理服务器__将请求发送到WEB服务器(WEB服务器有可能设置了反向代理),当WEB服务器将请求处理完成后,返回的数据会回复给 正向代理服务器,正向代理服务器现将数据返回给客户端。
- 在使用正向代理服务的情况下,WEB服务器看到的是正向代理服务器的IP地址。
使用场景
- 正向代理,可以通过转发局域网客户端请求的方式,使客户端具有访问公网的能力。