利用Nginx负载均衡、动静分离特性部署前后端项目

目录

一、Nginx简介

1.1 Nginx是什么?

1.2 Nginx的作用

二、Nginx负载均衡

2.1 Nginx安装

2.2 Nginx搭载负载均衡

2.2.1 tomcat负载均衡  

 2.2.2 服务器的集群

三、前后端分离项目

3.1 前端项目导出

3.2 前端项目Linux部署


一、Nginx简介

1.1 Nginx是什么?

        Nginx(发音为"engine-x")是一款高性能的开源Web服务器和反向代理服务器。它由Igor Sysoev于2004年创建,并于2008年首次发布。Nginx的设计目标是提供高性能、可靠性和可扩展性,以应对高负载的Web应用程序和流量。

1.2 Nginx的作用

  1. Web服务器:Nginx可以提供静态文件服务,如HTML、CSS、JavaScript和图像等。它能够高效地处理并发请求,提供快速的文件传输速度,并通过缓存和压缩等技术提高性能。

  2. 反向代理:Nginx可以作为反向代理服务器,将客户端请求转发给后端服务器,并将响应返回给客户端。通过反向代理,Nginx可以实现负载均衡、高可用性和故障转移,提高应用程序的性能和可靠性。

  3. 负载均衡:Nginx支持负载均衡功能,可以将请求分发给多个后端服务器,以平衡负载并提高系统的可扩展性和稳定性。它支持多种负载均衡算法,如轮询、IP哈希和最少连接等。

  4. 反向缓存:Nginx可以作为反向缓存服务器,缓存动态内容的响应,以减轻后端服务器的负载并提高响应速度。通过缓存,Nginx可以减少对后端服务器的请求,提高系统的性能和可扩展性。

  5. SSL/TLS终端:Nginx可以作为SSL/TLS终端,处理加密和解密HTTPS请求。它可以提供安全的通信通道,保护数据的机密性和完整性。

        总结一下,Nginx作为Web服务器和反向代理服务器,可以提供静态文件服务、反向代理、负载均衡、反向缓存和SSL/TLS终端等功能。它能够提高应用程序的性能、可靠性和安全性,适用于处理高负载的Web应用程序和流量。

二、Nginx负载均衡

2.1 Nginx安装

1、安装4个依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2、解压安装包

tar -xvf nginx-1.13.7.tar.gz

3、进入安装包目录,安装nginx

cd nginx-1.13.7


编译,执行配置: 考虑到后续安装ssl证书 添加两个模块

./configure --with-http_stub_status_module --with-http_ssl_module

安装 

make && make install

4、启动Nginx
进入 /usr/local/nginx/sbin 目录下启动:

 如下nginx文件夹有四个文件,启动nginx的在sbin文件夹下:

# 启动
./nginx

# 重启
./nginx -s reload

# 关闭
./nginx -s stop

# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

1、下载lsof指令
2、lsof指令用于查看是否开启nginx

1、yum install lsof
2、lsof -i:80

5、开放端口

开启Nginx后还是不能直接访问的,需要设置防火墙开放 80 端口

 firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --reload && firewall-cmd --list-port

访问示例: 

2.2 Nginx搭载负载均衡

2.2.1 tomcat负载均衡  

1、准备2个tomcat

通过一下命令备份一个新的tomcat

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

2、修改的tomcat配置如下

2.1 进入第二个tomcat的conf路径

cd /javaxl/software/apache-tomcat-8.5.20_8081/conf/

2.2 进入vim server.xml文件

将server.xml的内容修改如下:
1. HTTP端口,默认8080,如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010

 2.2.2 服务器的集群

1、进入nginx的conf目录下修改nginx.conf文件

命令:

vim nginx.conf

2、方法二: 

完整示例:

    
        #服务器的集群
    upstream  tomcat_list {  #服务器集群名字
        server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
        server    127.0.0.1:8081  weight=2;   #服务器2   weight是权重的意思,权重越大,分配的概率越大。
    } 
    
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            proxy_pass   http://tomcat_list; #服务器集群名字
            index  index.html index.htm;
        }

最后重启nginx和tomcat8080端口和tomcat8081端口:

./nginx -s reload

示例:

三、前后端分离项目

3.1 前端项目导出

1、项目config文件夹 --> index.js 添加如图配置

2、项目build文件夹 --> utils.js 添加如图配置

3、在前端项目根目录下运行cmd输入 npm run build 指令 进行导包

导包成功:

4、导出成功后项目会都出一个dist文件

5、点击此文件可查看导出的静态项目资源,点击静态资源也可访问动态数据哦

3.2 前端项目Linux部署

1、上传前端项目

将之前导出的前端项目的dist文件解压成压缩包,上传到nginx上

先在/usr/local/下创建一个文件夹名为myssm

2、解压前端项目

#下载解压zip的插件   
yum install -y unzip
#解压命令 
unzip 解压文件名

 

3、修改Nginx配置(动静分离)

更改Nginx配置文件用来导航路由到前端界面,并且重新配置服务器代理用来区分后端请求。

        location / {
            root /usr/local/myssm/dist;
        }
        location  ^~/api/ {
	        	#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
	        	proxy_pass http://tomcat_list/;
	      }

4、重启 Nginx 运行服务器

进入到/usr/local/nginx/sbin中重启Nginx之后,再访问服务器

5、配置域名与ip的映射关系

 在本地:C:\Windows\System32\drivers\etc\hosts中配置映射关系

效果演示:

猜你喜欢

转载自blog.csdn.net/Justw320/article/details/134167467