小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
到目前为止nginx到文章,已经写了如下内容:
- 环境搭建
- location
- gzip 压缩
- 日志开启
- 资源缓存配置
想了解相关基础配置信息的,可以点击下面文章链接去看看:
往期回顾:
Nginx系列-基础模块配置
Nginx系列-资源缓存配置
读完这篇文章你将收获以下内容:
- 什么是正向代理
- 什么是方向代理
- nginx如何配置反向代理
正向代理
下面是百度百科关于正向代理的介绍:
正向代理,意思是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理,它的典型之处在于是一种最终用户知道并主动使用的代理方式。常见的使用场景是,为在防火墙内的局域网客户端提供访问Internet的能力。听到这可能还是有些抽象,再举个例子,在国内是访问不了Google,但有时候我们又需要借助它去查找些资料,那怎么办呢?假如能够将我们的IP地址变换成能够访问Google的区域IP地址,那问题不就迎刃而解了。OK,这就是VPN的由来,就是为了解决这个事,它充当中转服务,当电脑接入 VPN 后,对外 IP 地址就会变成 VPN 服务器的 公网 IP,我们请求或接受任何数据都会通过这个VPN 服务器然后传入到我们本机。
反向代理
反向代理和正向代理的区别在于,正向代理代理的是客户端,反向代理代理的是服务器。
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率的。
它的具有如下优点:
- 提高了内部服务器的安全
- 加快了对内部服务器的访问速度
- 节约了有限的IP资源
Nginx配置反向代理
案例:将后缀名为api的请求转发到后台服务器
直接上配置信息(提供核心配置信息,其余省略):
server {
listen 80; # 监听的端口
server_name www.hello.com; # 服务器地址或绑定域名
location ^~/api { # 匹配前缀为api的请求
# 代理转发的后端服务器地址
proxy_pass http://realserver.com:9530/api/;
proxy_redirect off;
# 设置发送到后端服务器的请求头
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
# 代理的连接超时时间
proxy_connect_timeout 70;
proxy_send_timeout 90;
# 代理的读取资源超时时间
proxy_read_timeout 90;
proxy_send_lowat 12000;
proxy_buffer_size 4k;
# 设置缓冲区的大小和数量
proxy_buffers 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
# 指定位置来缓冲对文件系统的大型代理请求
proxy_temp_path /var/nginx/proxy_temp;
}
}
总结
至此便粗略学习了正向代理/反向代理的概念,并简单进行了nginx反向代理配置。
参考文章: