一.nginx介绍
1.什么是nginx?
Nginx是一个高性能、开源的Web服务器、反向代理服务器和负载均衡器。它最初由Igor Sysoev编写,于2004年首次发布,并在其后的几年中获得了广泛的应用和快速发展。现在,Nginx已经成为许多大型网站和应用程序的常用Web服务器和代理服务器。
Nginx采用事件驱动、异步非阻塞的架构,可以处理大量的并发连接和请求,并能够有效地分配和管理系统资源。此外,它具有灵活的配置选项,可以通过简单的修改配置文件来实现各种功能,如反向代理、负载均衡、HTTPS等。
Nginx的另一个显著特点是其高度的可扩展性和模块化。它支持各种各样的第三方模块,包括安全模块、缓存模块、日志模块等,使得开发者可以根据自己的需求进行灵活的定制和扩展。
总体来说,Nginx是一个优秀的、高性能的Web服务器和代理服务器,适用于处理大量并发请求、实现高可用性、高性能的应用程序。
2.nginx的应用场景
Nginx在各种应用场景下都有广泛的应用,以下是一些常见的应用场景:
- Web服务器:Nginx可以作为一个高性能的Web服务器来提供静态文件的服务。通过配置Nginx,可以轻松地处理大量的并发请求,同时具备较低的内存和CPU消耗。
- 反向代理服务器:Nginx作为反向代理服务器可以将请求转发到后端的多个服务器上,实现负载均衡和高可用性。这对于处理大规模的流量和提高应用程序的性能非常有帮助。
- 负载均衡器:Nginx作为负载均衡器可以将请求分发到多个后端服务器上,根据预先定义的算法进行请求的路由。这样可以提高系统的可扩展性、稳定性和性能。
- 缓存服务器:Nginx可以作为缓存服务器,缓存静态资源或动态内容,从而减轻后端服务器的负担,提高响应速度和用户体验。
- HTTPS和SSL/TLS终端:Nginx支持HTTPS协议,可以作为SSL/TLS终端来处理加密通信。它可以处理证书管理、安全协议配置等,提供安全的通信环境。
- WebSocket代理:Nginx可以代理WebSocket连接,使得后端应用程序可以与前端进行实时双向通信。
需要注意的是,Nginx的应用场景非常丰富,可以根据具体的需求和架构进行灵活配置和使用。以上列举的只是一些常见的应用场景,实际上还有更多的用途和扩展性可供挖掘。
3.作用示意图
总结来说就是多个服务器代理一个请求ip
使用nginx好处:
1.有利于项目的稳定
2.降低服务器压力,高效响应用户请求,提高用户体验
4.动静分离示意图
二.nginx的负载均衡(实战)
1.nginx安装
一键安装4个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
解压输入 tar -xvf nginx-1.13.7.tar.gz
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
# 安装
make && make install
启动nginx
启动
./nginx
# 重启
./nginx -s reload
# 关闭
./nginx -s stop
# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf
开放端口小编就不详细阐述了直接看图
以及效果展示
2.模拟负载均衡(构建两个服务器模拟)
删除原有项目
rm -rf oapro*
#准备2个tomcat(小编端口号修改过为8082)
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8080/
然后在进入tomact的目录中的conf
通过 vim server.xml 即可修改
然后在分别启动即可
修改nginx.conf文件
upstream tomcat_list { #服务器集群名字 server 127.0.0.1:8080 weight=1; #服务器1 weight是权重的意思,权重越大,分配的概率越大。 server 127.0.0.1:8082 weight=3; #服务器2 weight是权重的意思,权重越大,分配的概率越大 }
重新加载配置文件
./nginx -s reload
在将项目部署到其中即可,在重新启动
3.前端项目打包
首页要确定前端项目能够正常启动
然后在进行打包
通过 npm run build 即可打包
4.前台部署
通过配置路由的·不同来设置 求地址(到底是前台接口还是后台接口)
下载一个插件用于 zip的解压
yum install -y unzip
通过 unzip blog.zip 解压问
其中 root 配置 dist所在的目录
location ^~/api/ { #^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api proxy_pass http://tomcat_list/; }
然后通过
#1.C:\Windows\System32\drivers\etc\hosts中增加映射关系
ip + www.zking.com 即可