【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

简介: 【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

一、Nginx导言

1、引言

Nginx 是一款高性能的 Web 服务器和反向代理服务器,也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展,因此在互联网领域得到了广泛的使用。

总结出以下三点:

负载均衡:流量分摊

反向代理:处理外网访问内网问题

动静分离:判断动态请求还是静态请求,选择性的访问指定服务器

2、使用场景

Web 服务器:通过 Nginx 部署 Web 服务可以提升服务器的并发处理能力,降低响应延时和网络请求影响,同时支持多种负载均衡算法,能根据实际情况自动分配流量。

反向代理服务器:Nginx 可以作为反向代理服务器,实现多个后端服务器的负载均衡,并且可以根据实际情况分配请求,有效提升后端服务器的并发处理能力。

HTTP 缓存:Nginx 的 HTTP 缓存机制可以将经常访问的 Web 页面、图片、视频等静态资源缓存在本地,提高响应速度,降低服务器负载。

安全防护设备:Nginx 可以通过配置实现 Web 应用的访问控制、DOS 攻击防护、IP 黑名单等功能。

 

3、Nginx的使用

 Nginx 的使用和部署项目需要注意的是,在部署项目之前,你需要了解你的项目的具体需求,并根据实际情况配置 Nginx。同时,确保服务器已经正确配置防火墙规则,以允许对应的访问端口。此外,建议备份配置文件和项目文件,以防止意外情况发生。

       流程如下:

安装 Nginx:首先需要在服务器上安装 Nginx。具体的安装方法会因服务器操作系统的不同而有所不同,你可以参考 Nginx 官方文档或操作系统相关的教程进行安装。

配置 Nginx:安装完成后,需要对 Nginx 进行配置。主要包括设置监听端口、配置服务代理、设置负载均衡、配置缓存等。Nginx 的配置文件位于 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf。你可以根据实际需求进行相应的修改。

启动 Nginx:配置完成后,通过终端命令或者服务管理工具启动 Nginx,比如通过执行 sudo service nginx start 或 /etc/init.d/nginx start 来启动 Nginx。

部署项目:将项目文件放置在 Nginx 的 Web 根目录下,根据需要创建对应的子目录。默认情况下,Nginx 的 Web 根目录在配置文件中的 root 参数指定,一般是 /usr/share/nginx/html 或 /var/www/html。

配置项目访问:根据项目的需求,可以在 Nginx 的配置文件中添加对应的站点配置。主要包括设置域名和端口、指定访问路径、配置 HTTPS、设置访问权限等。

重启 Nginx:项目部署完成后,需要重新加载 Nginx 的配置文件使其生效。通过执行 sudo service nginx restart 或 /etc/init.d/nginx restart 重新启动 Nginx。

测试访问:在浏览器中输入 Nginx 服务器的 IP 地址或域名,加上对应的访问路径,如果能够正常访问项目页面,则说明部署成功。

二、Nginx安装

1、安装依赖

一键安装4个依赖,执行命令等待安装完成!

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

2、下载解压安装包

如果你下载好了可以用客户端工具拖拽进去

没有下载好就执行以下命令,记得在你的放置的目录下执行。

下载命令:wget http://nginx.org/download/nginx-1.13.7.tar.gz

解压命令:tar -xvf nginx-1.13.7.tar.gz

3、安装nginx

1、进入解压后的目录进行安装:cd /nginx-1.13.7/

2、编译,执行配置: 考虑到后续安装ssl证书 添加两个模块 等待加载完成!

命令:./configure --with-http_stub_status_module --with-http_ssl_module

3、安装,等待安装完成!

命令:make && make install

4、启动

进入 usr/local/nginx/sbin/目录下启动:cd /usr/local/nginx/sbin//

启动:./nginx

重启:./nginx -s reload

关闭:./nginx -s stop

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

5、测试

安装lsof插件

命令:yum install -y lsof

安装完成,使用命令:lsof -i:80

6、设置防火墙端口 80

启动防火墙:systemctl start firewalld

设置端口 80:firewall-cmd --zone=public --add-port=80/tcp --permanent

设置端口 8081:firewall-cmd --zone=public --add-port=8081/tcp --permanent

更新防火墙规则:firewall-cmd --reload

防火墙列表:firewall-cmd --zone=public --list-ports

firewall-cmd --reload && firewall-cmd --list-port

7、访问

使用我们的IP路径访问可以看到

三、tomcat负载均衡

1、准备工作

确保你的tomcat的/apache-tomcat-8.5.20/webapps/里面没有任何不属于的项目及文件

2、准备2个tomcat

准备两个tomcat,在你的根目录里面执行以下命令

命令 复制:cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

3、修改端口

进入第二个tomcat/conf里面server.xml文件进行端口的修改

编辑文件:vim server.xml

为了避免两个的tomcat冲突,我们在这些地方都+1

  1. HTTP端口,默认8080,如下改为8081
  2. 远程停服务端口,默认8005,如下改为8006
  3. AJP端口,默认8009,如下改,8010

4、测试端口

我们在两个tomcat里面分别启动  ./startup.sh

5、服务器的集群

进入 cd /usr/local/nginx/conf/ 里面编辑nginx.conf文件

编辑:vim nginx.conf

添加以下代码

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

在里面注释root,添加proxy_pass http://tomcat_list/;

进入/usr/local/nginx/sbin/:cd ../sbin/

重启nginx:./nginx -s reload

最后我们直接访问我们的IP地址可以看到

如果有一个服务器tomcat停掉了一个,就只会用另外一个了

四、后端接口部署

1、导入项目启动

用我们的客户端工具在我们两个tomcat中webapps文件夹里面都放入我们的war包。

如果你的两个tomcat都是开启的状态我们在两个tomcat里面停止运行./shutdown.sh。

然后我们再开启两个tomcat服务器./startup.sh。

MySQL的数据可以查看【Linux】Linux项目部署及更改访问端口号。

 

2、测试

我们访问我们的端口数据

五、前端部署

1、前端打包

1.1、简介

SPA(Single Page Application)是一种运行在单个页面上的 Web 应用程序,主要采用 JavaScript、Ajax 等技术动态加载页面内容,提供像桌面应用程序一样的用户体验。将前端 SPA 进行打包主要是为了加快页面的加载速度,减少资源请求次数,保证前端应用的快速响应。

1.2、步骤

  1. 再打包之前记得运行一遍你的项目,以便出意外的麻烦操作。(确保项目运行没问题)
  2. 在spa前端项目里面的config/index.js里面build里面修改assetsPublicPath
  3. 。在build/utils.js里面添加publicPath。
  4. 在你的前端spa项目的目录里面cmd进入命令窗口
  5. 在命令窗口输入命令:npm run build
  6. 在目录里面可以看到dist文件,里面是我们打包好的前端项目。

2、前端部署

2.1、导入\解压文件
  1. /usr/local/里面新建一个文件夹mypro放入自己的前端项目zip
  2. 进入mypro里面
  3. 解压前端
  1. 安装解压插件:yum install -y unzip2.解压:unzip blog.zip

2.2、配置

/usr/local/nginx/conf/编辑nginx.conf文件。

静态资源配置

root 的路径改成你解压的文件路径;注释proxy_pass

动态资源配置

在下面添加保存;^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api

1.  location  ^~/api/ {
2.    proxy_pass http://tomcat_list/;
3.  }

进入:cd /usr/local/nginx/sbin/

重启nginx :./nginx -s reload

访问IP地址可以看到我们的前端

2.3、加载映射关系

看你的项目请求路径是什么,如果你的项目请求路径是对应的我们就可以不用修改

我们进入我们主机的C:\Windows\System32\drivers\etc\hosts文件进行编辑配置,配置我们项目访问对应的访问路径配置成我们服务器对应的IP地址

2.4、访问

这样我们的主机就能访问了


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3天前
|
负载均衡 Java 应用服务中间件
|
23天前
|
负载均衡 监控 应用服务中间件
Nginx负载均衡:你的网站流量翻倍利器
Nginx负载均衡:你的网站流量翻倍利器
15 0
|
23天前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
23 0
|
29天前
|
负载均衡 算法 前端开发
Ngnix之反向代理、负载均衡、动静分离
Nginx是一个高性能的开源Web服务器,它还可以用作反向代理、负载均衡器以及动静分离的工具。
|
30天前
|
缓存 负载均衡 算法
【Nginx】Nginx 负载均衡
【1月更文挑战第25天】【Nginx】Nginx 负载均衡
|
30天前
|
负载均衡 应用服务中间件 nginx
【实践】使用Nginx作为GrayLog日志接入的负载均衡
【实践】使用Nginx作为GrayLog日志接入的负载均衡
14 0
|
1月前
|
负载均衡 算法 应用服务中间件
深入了解Nginx底层负载均衡算法
深入了解Nginx底层负载均衡算法
26 0
|
1月前
|
负载均衡 应用服务中间件 nginx
Nginx四层负载均衡在秒杀系统中的应用
Nginx四层负载均衡在秒杀系统中的应用
18 0
|
1月前
|
负载均衡 应用服务中间件 nginx
Nginx负载均衡选择在秒杀系统中的应用
Nginx负载均衡选择在秒杀系统中的应用
25 0
|
1月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡

相关产品

  • 云迁移中心