ngin简介
Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器。
Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
代理
为了保护真实对象,真实对象委托另一对象去完成某项任务,这个过程就是代理。日常生活中有很多体现代理思想的事,例如,董事长委托秘书去楼下买包烟。
正向代理
客户端向代理服务器发送一个请求给正向代理服务器,代理服务器带着请求去找原始服务器,将结果带回来给客户端。例如,vpn就是正向代理的过程,你的请求发送到了另一地区的代理服务器,然后代理服务器根据你的请求去访问指定的服务器返回结果给你。
反向代理
客户端发送请求到反向代理服务器,由反向代理服务器决定要转发的原始服务器,而客户端本身并不知道自己访问的是反向代理服务器。
总结:正向代理代理的是客户端;反向代理代理的是服务器
或者说,正向代理是客户端知道访问是哪个目标服务器,反向代理是客户端不知道访问的是哪个目标服务器。
nginx可以实现反向代理和负载均衡,这两个功能可以同时实现,负载均衡同时就已经实现了反向代理。
nginx实现负载均衡步骤
前提:三台Linux服务器,其中两台部署好了JAVA项目,在第三台配置nginx服务器实现负载均衡,Linux系统为:centos 6.5
关于nginx的安装:https://blog.csdn.net/weixin_44001681/article/details/105440723
linux自启动:https://blog.csdn.net/weixin_44001681/article/details/105441107
tomcat热部署:https://blog.csdn.net/weixin_44001681/article/details/105419472
进入nginx中的conf文件,打开nginx.conf文件进行配置
cd /usr/local/nginx/conf
vim nginx.conf
配置内容如下,
更正,图里server_name实际上自由取值,便于区分就行,不一定就是命名成网址,重要是和upstream里对应起来。
配置好之后,保存退出,并启动nginx
cd /usr/local/nginx/sbin
./nginx
之后就可以在浏览器中访问域名来访问其中配置好的两个部署了项目的服务器了
去电脑中C:\Windows\System32\drivers\etc\hosts文件中设置,代表访问这个域名会自动访问这个ip的服务器,也就是nginx服务器。跟localhost代表本机127.0.0.1一个道理。(其实浏览器直接输ip也行,这是nginx.conf只配置一个server情况下,如果配置了多个server和upstream,那么输入ip的结果是只跳到server写在前面的那个域名)
因为没有通过DNS域名解析服务,所以需要在本机的hosts文件中进行配置域名和IP的映射关系
接下来去浏览器输入域名访问nginx服务器,服务器就会自动转到你配置好的项目服务器。(如果打不开,看看防火墙80端口开了没)
我这里实际上还是部署了两个不同的项目,在控制台输出语句来观察结果,nginx实现了负载均衡,交替反向代理两个不同的服务器。
常用的设备状态配置
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
一般就weight down backup 常用
默认weight 轮询算法,weight默认值为1 ,服务器交替访问一次后下次访问就去另一台。
参考链接:https://baijiahao.baidu.com/s?id=1652608869911988442&wfr=spider&for=pc
https://www.cnblogs.com/wly1-6/p/10418149.html