Nginx学习
背景
1、在项目最开始的时候,低并发情形下,一个客户端,一个服务器即可满足要求
2、随着平台的用户数增加,并发的需求量增加,一台服务器无法满足我们要求
3、进行横向扩展,增加服务器,这时,几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器,通过代理服务器来帮我们转发和处理请求。
4、我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点之上。这个过程用户是无感知的,用户不知道是哪个服务器返回的结果,我们还希望他可以按照服务器的性能提供不同的权重选择。保证用户最佳体验!所以使用了Nginx
1、什么是Nginx?
Nginx(engine x)是一个高性能的HTTP和反向代理web服务器。
2、Nginx作用?
Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
3、正向代理
对客户端进行代理
4、反向代理
对服务端进行代理
5、负载均衡策略
5.1 内置策略
轮询
加权轮询
Ip Hash
Ip Hash对客户端请求的IP进行Hash操作,然后根据Hash结果将同一个客户端的IP的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
5.2 扩展策略
自己想
6、环境配置
6.1 基础环境
gcc
源码编译需要依赖gcc环境
1
yum install gcc-c++
pcre pcre-devel
主要是nginx的http模块需要使用pcre来解析正则表达式
1
yum install -y pcre pcre-devel
zlib
nginx使用zlib对http包的内容进行gzip
1
yum install -y zlib zlib-devel
OpenSSL
1
yum install -y openssl openssl-devel
6.2 Nginx安装
Nginx下载地址
1 | wget https://nginx.org/download/nginx-1.20.2.tar.gz |
查看nginx安装路径
1 | whereis nginx |
Nginx常用命令
1 | cd /usr/local/nginx/sbin # 进入启动目录 |
nginx启动后,访问ip:80,即可看到如下成功页面
腾讯云服务器需要安全组开放端口
6.3 Java配置
Java下载地址
1 | cd /usr/local |
查看java版本信息:
1 | java -version |
6.4 Tomcat配置
Tomcat下载地址
1 | wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz |
部署完成后,启动Tomcat
7、Web项目部署
7.1 IEDA新建web项目
1、FILE -> NEW -> Moudle… ->Spring Initializr
下一步->下一步,Developer Tools勾选lambok,web勾选Spring Web
2、logback-spring.xml
在resources文件夹下创建该文件
1 |
|
3、Controller类
1 | import lombok.extern.slf4j.Slf4j; |
4、运行Tomcat,访问http://localhost:8080/nginx/test
5、编译,生成war包
7.2 Linux下部署
1 | ps -ef | grep tomcat # 查看进程id |
测试:
1 | curl http://127.0.0.1:8080/test |
1 | cd /usr/local/tomcat8/apache-tomcat-8.5.73/logs |
8、搭建两个Tomcat环境
1 | ps -ef | grep tomcat # 查看进程id |
1 | ps -ef | grep tomcat #显示两个tomcat |
1 | curl http://127.0.0.1:8080/test |
查看两个tomcat下的catalina.out文件内容
9、Nginx代理配置
nginx.conf配置简单讲解
1 | 全局配置 |
配置Nginx代理
1 | /usr/local/nginx/sbin |
配置好后,默认用80端口
1 | curl http://127.0.0.1/test |
若多次运行,则可以在两个tomcat下的 catalina.out 文件中进行查看
1 | curl http://127.0.0.1/test |
若修改权重,
1 | # 在con/nging.conf中修改8090的权重 |
再次多次运行
1 | curl http://127.0.0.1/test |
不足
web项目在linux上部署的时候,将logbach-spring.xml文件配置后,tomcat启动报错,在下次进行改进