- nginx的核心功能:
(1)反向代理
(2)负载均衡
(3)动静分离- nginx的高可用
1.nginx的核心功能
1.1反向代理
正向代理: 代理的是客户端,对应服务器而言不知道真实的客户信 息。—翻墙软件
反向代理: 代理的是服务器端,对应客户端来说不知道真实服务器的信 息。–nginx
(1)nginx如何实现反向代理
准备:
(1)springboot项目–部署运行起来
java -jar qy163.jar
//(1)安装jdk
//(2)连接的数据所在的服务器必须允许远程访问
//(3) linux中必须关闭防火墙
(2) 修改nginx的配置文件–代理springboot服务器
(3) 客户访问nginx–哪些真实服务器的资源
1.2负载均衡
把客户的请求,负载均衡到相应的服务器。
(1)启动tomcat服务器
192.168.65.130(qy163Linux2) 和 192.168.65.131(qy163Linux3)启动tomcat服务器
>
(2) 修改nginx的配置
>
(3) 客户访问
默认的负载均衡策略: 轮询策略。
在真实开发时可能服务的配置不同, 服务器配置高的并发能力强,配置低的并发能力弱。
在负载均衡时,让请求多请求配置高的服务器。我们可以修改负载均衡的策略—权 重。
1.3动静分离
把静态资源和动态资源分离开。静态资源交于nginx服务器处理,而动 态资源tomcat服务器处理。—适合前后端不分离的情况
1.3.1idea项目部署
(1)创建项目
(2)main.html
<meta charset="UTF-8"> <title>Title</title> <link type="text/css" rel="stylesheet" href="/css/my.css"> </head> <body> <img src="/images/1.jpg" width="250px" height="300px"> <div id="mydiv"></div> </body> </html>
(3)application.properties
server.port=8888 spring.thymeleaf.suffix=.html spring.thymeleaf.prefix=classpath:/templates/
(4)MyController
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller //这里不能写ResController,否则下面的return "main";会被当成json字符串 public class MyController { @GetMapping("index") public String main(){ System.out.println("------------main------------------"); return "main"; //视图解析;/templates/main.html } } ```
1.3.2项目启动—linux
1.3.3 配置nginx----配置文件
(3)在nginx安装目录下放置static目录以及内容
1.3.4在通过nginx访问 —就可以显示静态资源
2.nginx的高可用
准备: 192.168.65.131(qy163Linux3-clone)和192.168.65.132(qy163Linux4-clone)的nginx服务器。
131主节点 132 从节点
(1)131和132安装keepalived
安装keepalived
yum install -y keepalived
检查是否安装keepalived
rpm -q -a keepalived
默认安装路径:
/etc/keepalived
(2)修改keepalived.conf的配置内容
(4)创建nginx检测脚本
(5)166和167都开启nginx和keepalived
systemctl start keepalived.service
(6) 测试
主节点挂掉: