正向代理
就是假设有一个内网
内网有两台机器,这两台机器只有 a 可以上网
b 不能上网,但是 a 和 b 通过网络相连接
这时如果 b 想访问外网,就可以通过 a 来正向代理访问外网
正向代理就是在内网中模拟目标服务器,把内网中其它机器的请求
转发给外网中的真正的目标服务器
所以正向代理是接受内网其它机器的请求的
反向代理则是反过来
也是一个内网,有几台机器,只有其中一台与外网连接
但是反向代理接受的不是内网机器的访问请求
反向代理接受的是外网过来的访问请求
然后把请求转发到内网中的其它机器上去
外网发出请求的用户并不知道反向代理的服务器把请求转发给了谁
要在一台机器上设置正向代理的功能
如图,编辑一个nginx配置文件
上图就是配置文件内容
如果配置一台服务器作为正向代理服务器
那么这个虚拟主机配置文件就必须是默认虚拟主机
因为所有访问这台机器的网络请求应该先访问这个虚拟主机才对
所以这里要设置 default_server
然后还要把原来的 默认虚拟主机 配置文件名称修改掉
如图,把 default.conf 配置文件的名称修改一下
这样就取消了原来的默认虚拟主机配置文件了
因为默认的默认虚拟主机配置文件就是 default.conf
配置文件里面的 resolver 119.29.29.29
意思是配置一个 dns 地址
因为是做正向代理,接受了内网请求的域名后
要把请求发送给真正要访问的服务器
但是内网发送的域名是没有包含 ip 地址的
所以还要把域名发送给 dns 服务器解析 ip 地址
拿到 ip地址后才能转发到要访问的服务器上去
所以这里需要配置一个 dns 地址
接受了内网域名后,就会把域名发送到这个 dns 上去解析
下面的 location 按照图中设置就可以了
这样正向代理服务器接受内网机器请求后
就会把域名发到配置的dns上解析,然后访问真正的服务器
再把真正服务器返回的内容发送给发出请求的内网机器
nginx反向代理
做一个反向代理的例子
如图建立一个测试的虚拟主机配置文件
监听 8080 端口,域名为 www.test.com
根目录是 /data/wwwroot/test.com
访问虚拟主机显示的首页文件是 index.html
如图,创建虚拟主机的根目录 /data/wwwroot/test.com
然后使用 echo “test.com_8080”