是一个web服务器。类比Tomcat。
单机并发量为5w,也就是可以同时处理5w个请求。
Linux和Nginx属于运维技术。
反向代理:
【技术干货】阿里云构建千万级别架构演变之路
Linux终端中输入:nginx -v可以查看是否安装了Nginx。
ping www.baidu.com表示本机和百度服务器能否ping通。
curl www.baidu.com表示本机访问百度服务器
反向代理时,服务器A、B、C可以是Tomcat或者Springboot应用,因为Springboot应用中可以内置Tomcat。
启动一个Springboot应用
如何将这个jar包启动?
- 打开IDEA中的Terminal(这和打开cmd是一样的)
ctrl+c退出进程。
如何以后台的方式去启动呢?
查看日志文件:
如何关闭进程呢?
查看进程:
查到后kill掉即可:
通过工具将这个jar包传入Linux系统下,然后启动:
现在我想使用Nginx做代理,应当改一下配置文件。
改完之后重启一下:
访问即可:
这就相当于访问:
Nginx在192.168.45.135:80端口启动,springboot应用在192.168.45.135:8080端口启动,对Nginx进行配置后,Nginx就能将192.168.45.135:80的请求转发到springboot服务。
接下来可以用这个Nginx代理3个springboot应用。
在桌面新建三个文件夹demo1、demo2、demo3并将nginx-demo-0.0.1-SNAPSHOT.jar文件分别放入,再将其分别启动。
指定端口启动:
然后用Nginx代理这3个springboot应用:
现在只需要访问Nginx(192.168.45.135:80),它会把这个请求转发到上图中的3个server中的1个。
经过测试发现,Nginx是通过轮询访问的这3个springboot应用。
Nginx和被代理的服务器最好在一个局域网内,这样Nginx转发请求的时候速度的很快。
我们还可以配置其他负载均衡策略:
负载均衡策略:
- 轮询(默认)
- weight
- ip_hash
- least_conn 最少连接⽅式
- fair(第三⽅) 响应时间
- url_hash (第三⽅)
仍然是在nginx.config中配置:
缓存
第一次访问192.168.45.135/teacher/liu是访问的服务器中的内容,第二次访问192.168.45.135/teacher/liu就访问的是缓存中的内容了。
这样可以减轻服务器的压力。
缓存中尽量只存放用户不敏感或者不重要的数据。否则如果数据库中的数据改变,那缓存中的数据就是脏数据了。