区别
正向代理代理客户端,反向代理代理服务器
在正向代理中,Proxy和Client同属于一个LAN(图中方框内),隐藏了客户端信息;
在反向代理中,Proxy和Server同属于一个LAN(图中方框内),隐藏了服务端信息;
正向代理和反向代理很有可能会存在在一个应用场景中,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了。
作用
正向代理:
(1)访问原来无法访问的资源,如Google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
配置
在nginx的配置文件nginx.conf中新建一个虚拟主机的配置,
server { listen 8080; server_name localhost; location /category/ { proxy_pass http://localhost; } }
- listen 表示nginx要监听的端口;
- server_name 就是访问nginx时在浏览器中输入的域名,可以直接填ip地址,要绑定多个可以用空格隔开;
- location 表示nginx监听该端口时要匹配的url,如果访问nginx的url中包含有/category/就执行代理
- proxy_pass 表示nginx要把客户端的请求代理到的目标。
PS:这里proxy_pass的路径写法,如果像上边这样,路径的结尾不带/,表示的是相对路径,那么nginx在转发请求时在原始url加上/category/;如果proxy_pass的目标路径配置时 末尾带上了/ ,表示的是绝对路径,那么nginx在转发请求时就会截取掉原始url中的/category/