1:相关概念
什么是代理: 很简单,代理就是中介,本来A到B可以直连,但中间插入了一个C,你需要同过A->C->B进行连接。
刚开始的时候,代理的工作是帮助内网的client访问外网的server用的,后来出现了反向,顾名思义,就是帮助外网的客户端访问内网的服务器。是不是很简单~~~~
正向代理:正向代理类似于一个跳板机,代理去访问外部资源。
比如我们国内直接访问不到谷歌浏览器,那么我们就可以通过一个正向代理服务器,请求发送到代理服务器,代理服务器能够访问到谷歌,这样由代理去谷歌取到数据,然后再返回给我们,这样我们就可以访问到谷歌。
用途:访问原来无法访问到的资源。等等
反向代理:代理服务器来接受internet的链接请求,然后将请求转发到内网的服务器上,并将得到的结果再返回给internet上请求的客户端。
用途:保证内网的安全。负载均衡。
负载均衡:公司会建立很多的服务器,这些服务器,组成了服务器集群,然后当用户访问网站的时候,先访问一个中间服务器,然后再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将请求引入该服务器。
所以每次用户访问,都能保证服务器集群中的每个服务器的压力趋于平衡,避免服务器崩溃的情况。
DMZ:隔离区,在安全领域的具体含义是:内外网防火墙之间的区域。DMZ是一个缓冲区,在DMZ区存放着一些公共服务器,内外网都可以单向访问DMZ区。设置DMZ区的目的是为了安全。如果内网可以被互联网访问,就没有安全可言了,但有些对外应用又需要被外网访问,所以DMZ就诞生了。
总结:
正向代理是代理客户端,代理客户端,服务器并不知道实际发送请求的客户端。
反向代理是代理服务端,代理服务端,客户端并不知道实际提供服务的服务端。
nginx会给你分配压力小的服务器去访问。
2:常用命令
nginx重启命令:nginx -s reload
nginx关闭命令:nginx -s stop
nginx启动命令:nginx
nginx检查配置:nginx -t (会检查nginx.conf是否正确)
3:在前端项目中的使用
目前接触到的使用nginx的场景有两种:
3.1:在开发过程中,前端本地调试在获取数据请求后台接口时,因为出现跨域(协议,域名,端口不同)可以借助nginx反向代理。
3.2:在实际中,一些应用部署在内网,一些应用部署在dmz区,比如我们需要在部署在dmz区的应用嵌入内网部署的某些应用页面,这时可以使用nginx反向代理。
4:nginx.conf的配置
server {
listen 4300;#监听的端口
server_name localhost;
chartset UTF-8;
location / {
root D:/*****/dist #默认网站根目录位置
index index.html #默认页
}
location /balbala/ {
proxy_pass http://127.0.0.1:4400/;
}
#上面也可以单独创建一个文件
include nginx_proxy.conf
}
这样在我访问locahost:4300/balbala的时候就会访问到http://127.0.0.1:4400;