Nginx简介,Nginx搭载负载均衡以及Nginx部署前端项目

news2024/12/25 9:12:31

目录

一. Nginx简介

Nginx的优点

二. Nginx搭载负载均衡

2.1 Nginx安装

2.1.1 安装依赖

2.1.2 解压nginx安装包

2.1.3 安装nginx

2.1.4 启动nginx服务

2.2 tomcat负载均衡

2.3 Nginx配置 

三. Nginx前端部署 


一. Nginx简介

NGINX(读作:engine-x)是用于 Web 服务、反向代理、内容缓存、负载均衡、媒体流传输等场景的开源软件。

它最初是一款专为实现最高性能和稳定性而设计的 Web 服务器。除了 HTTP 服务器功能以外,NGINX 还可用作电子邮件(IMAP、POP3 和 SMTP)的代理服务器以及 HTTP、TCP 和 UDP 服务器的反向代理与负载均衡器。

尽管 NGINX 以“最快的 Web 服务器”而闻名,但由于 NGINX 可以处理大量的连接,因此它通常被用作反向代理和负载均衡器,以管理入向流量并将其分发到较慢的上游服务器,包括传统数据库服务器和微服务。

NGINX 还经常位于客户端和第二个 Web 服务器之间,用作 SSL/TLS 卸载器或 Web 加速器。作为中介服务器,NGINX 能够高效处理可能降低 Web 服务器速度的任务,例如协商 SSL/TLS 或压缩和缓存内容以提高性能。

无论是使用 Node.js 还是 PHP 等技术构建的动态站点,通常都将 NGINX 部署为内容缓存和反向代理,以减少应用服务器上的负载并最高效地利用底层硬件。

Nginx的优点

  • 作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。
  • 作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。
  • 作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。
  • Nginx是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对50000个并发连接数的响应,而且只占用很低的内存资源。
  • Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持10000个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。宕机的概率非常小。

本篇我将着重介绍负载均衡以及动静分离。

二. Nginx搭载负载均衡

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2.1 Nginx安装

2.1.1 安装依赖

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

​   

2.1.2 解压nginx安装包

tar -xvf nginx-1.13.7.tar.gz 

​ 

2.1.3 安装nginx

# 进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
# 安装
make && make install 

2.1.4 启动nginx服务

安装好的 nginx 服务在 /usr/local/nginx 下

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

安装lsof,查看服务是否开启

yum install -y lsof

​ 

80端口已经在使用

这里外部还不能访问80端口,要设置防火墙开放80端口

设置防火墙开放 80 端口
 firewall-cmd --zone=public --add-port=80/tcp --permanent

查看开放的端口列表
 firewall-cmd --reload && firewall-cmd --list-port

nginx服务开启成功 

2.2 tomcat负载均衡

#准备2个tomcat
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

​ 

为了避免端口号发生冲突,将第二个tomcat下的端口号都加一

进入第二个tomcat下的conf文件夹中: cd apache-tomcat-8.5.20_8081/conf/

修改server.xml: vim server.xml

  • 1. HTTP端口,默认8080,改为8081

  • 2.远程停服务端口,默认8005,改为8006

  • 3.AJP端口,默认8009,改为8010

这里为了演示效果,将tomcat8081的静态页面进行改动

#测试访问
http://192.168.19.129:8080/


http://192.168.19.129:8081/

2.3 Nginx配置 

在/usr/local/nginx/conf/nginx.conf中

配置之前

配置之后

​ 

配置完成后,进入sbin目录下,重启nginx服务

#重启服务

./nginx -s reload

 完成后,在浏览器输入服务器的ip地址就可以访问8080和8081的内容

三. Nginx前端部署 

#将前端项目打包,生成dist文件夹,点击index.html访问项目测试
npm run build

生成dist文件夹

注意1:hbuilderX打包vue项目白屏问题
将项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,再打包生成的 dist 文件
build: {
    // assetsPublicPath: '/',//修改前
    assetsPublicPath: './',//修改后
}

注意2:hbuilderX打包vue项目,element-ui的icon图标无法正常显示问题
问题:使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css,js样式都能正确加载出路径,
但是element的icon图标却不能正常加载出来。

问题分析:
加载的路径https://yxq.linksign.cn/static/css/static/fonts/element-icons.535877f.woff
本应该加载的路径https://yxq.linksign.cn/static/fonts/element-icons.535877f.woff
打包的路径
事实上是打包时候读取的文件路径多了两层;
找到build文件的utils.js 中有打包的路径,看看generateLoaders();
Extract CSS when that option is specified, 指定该选项时提取CSS
发现少了个公共路径,加上pubilcPath
if (options.extract) {
     return ExtractTextPlugin.extract({
       use: loaders,
       fallback: 'vue-style-loader',
       // 解决icon路径加载错误
       publicPath:'../../'
     })
   } else {
     return ['vue-style-loader'].concat(loaders)
   }

在 /usr/local文件夹下 新建一个文件夹mypro 存放dist文件夹

如果是放入zip压缩包 :

yum install -y unzip
unzip ...

在 C:\Windows\System32\drivers\etc\hosts中增加映射关系

192.168.19.129 www.zking.com 

增加前

 

增加后

 

这里映射改不了,也可以选择在前端项目的action.js中更改配置再重新打包 

代理配置  在/usr/local/nginx/conf/nginx.conf中

保存后进入sbin目录下,重启nginx服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云2023年双十一活动各云产品活动内容及优惠政策汇总

阿里云2023双十一活动各云产品有哪些新购和续费优惠政策?小编看了一下阿里云2023年的双十一活动,活动分为主会场和8个云产品分会场,涉及的云产品涵盖了云服务器、云数据库、云存储、云网络、大数据Al、云原生、云安全等几乎所有阿里云产品&am…

技能get-ps抠颜色一样的图

公司要插个小图片,从网上down下来的图片是不过是jpg的,背景不透明,这时候可以使用ps工具把这种同一颜色的内容扣下来。 操作步骤: 选择-色彩范围,然后用取样器取颜色,再调节拉条选取颜色范围,最…

客户收到样品后“消失”,怎么破?

对于大部分外贸人来说,谈客户几乎不是一次性谈成的,而是要进行多次的沟通。在沟通过程中难免会遇到各种问题,一些小问题容易解决,但有一些棘手的问题却不知该如何下手。 比如: ①客户收到样品后就“消失”&#xff0c…

某数据库为提升搜索效率,对某一整型字段构建二叉搜索树(BST)

声明:下面的方法不一定正确,个人学习过程中所写,并未做大量测试,仅供参考,应该有BUG,暂时不改了。 描述:某数据库为提升搜索效率,对某一整型字段构建二叉搜索树(BST)。每个结点包含…

07、vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。

目录 问题解决: 问题 vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。 在使用 VSCode 时,创建 Vue 项目报的错 创建不了 Vue 项目 解决: 因为在此系统上禁止运行该脚本&#xff0…

[ 云计算 | AWS 实践 ] 使用 Java 列出存储桶中的所有 AWS S3 对象

本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【云计算洞察】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | …

利用工业视频AI分析,能否消除企业生产安全隐患?

讲个去年11月的案例,某家工厂发生火灾,直接导致38人死亡和2人受伤。然后在今年2月,某家新能源汽车公司发生机械伤害事故,导致1人死亡。4月,一家船厂发生生产安全事故,造成7人死亡和5人受伤。5月&#xff0c…

5.4 可靠传输的工作原理

思维导图: 5.4 可靠传输的工作原理 前言概述 TCP与IP层的关系:TCP负责发送报文段,而IP层负责传送这些报文段。IP层仅提供“尽最大努力服务”,本质上是不可靠的传输。TCP的责任:为了弥补IP层的不可靠性,TC…

springboot的请求与响应

一,简单参数 Get请求:只需要在postman中的Params参数与方法中的形参一致就可以Post请求与Get方法一致只需要在 如果参数名不一致--通过RequestParam中的value属性执行请求参数名 RequestParam(name "name",required false) //表示name参数不是…

安装VMware后无VMnet1和VMnet8网卡

问题描述 通过进入 按键盘(WINR),输入cmd,进入管理员页面 输入ipconfig,没有vmnet1和vmnet8 进入电脑--->更改适配器(也无vmnet1和vmnet8) 一,解决方法1 直接还原vmware网络设置。 还原成…

WIN10专业版64位22H2正式版19045.3324 简体中文版、英文版

微软在面向 Win10 21H2/22H2 发布了累积更新 KB5029244 之外,在更新日志中也表示,也为包括 1809,1607 和 1507 在内的功能更新提供了累积更新。 IT之家在此附上 Win10 Build 19044.3324 和 Build 19045.3324 更新内容如下: 修复了…

【行云流水线实践】基于“OneBuild”方法对镜像进行快速装箱 | 京东云技术团队

在云原生领域,无论使用哪种编排调度平台,Kubernetes,DockerSwarm,OpenShift等,业务都需要基于镜像进行交付,我们在内部实践“Source-to-image”和链式构建,总而总结出“OneBuild”模式。 其核心…

HT3163 免电感滤波 音频功率放大器工作原理

HT3163是一款G效AB/D类音频功率放大器。在D类模式,18V供电、THDN10%条件下,能够持续提供40W/4Ω功率输出。在AB类模式,12V供电、THDN10%条件下,能够持续输出17W/4Ω功率。 HT3163具有防削顶失真(ACF)输出控…

第02章-变量与运算符

1 关键字 关键字:被Java语言赋予了特殊含义,用作专门用途的字符串(或单词)。如class、public、static、void等,这些单词都被Java定义好了,称为关键字。 特点:关键字都是小写字母;官…

中国长城-安全防护-硬件,软件,细粒度权限划分-等级保护,人员意识

目录 等级保护 安全防护 中国长城-安全防护 硬件,软件,细粒度权限划分-等级保护,人员意识 等级保护 安全防护 建立安全管理制度:制定信息安全政策,明确安全管理职责,建立安全培训和考核机制&#xff0c…

Mgeo:multi-modalgeographic language model pre-training

文章目录 question5.1 Geographic Encoder5.1.1 Encoding5.1.2 5.2 multi-modal pre-training 7 conclusionGeo-Encoder: A Chunk-Argument Bi-Encoder Framework for Chinese Geographic Re-Rankingabs ERNIE-GeoL: A Geography-and-Language Pre-trained Model and its Appli…

开发第一个flutter app的六个关键步骤

Flutter这些年发展的很快,特别是在 Google 持续的加持下,Flutter SDK 的版本号已经来到了 3开头,也正式开始对 Windows、macOS 和 Linux 桌面环境提供支持。如果从 Flutter 特有的优势来看,我个人认为主要是它已经几乎和原生的性能…

【嵌入式项目应用】__UART自定义通信协议代码实现方法

目录 前言 一、什么是通信协议 二、简单通信协议的问题 三、通信协议的常见内容 1. 帧头 2. 设备地址/类型 3. 命令/指令 4. 命令类型/功能码 5. 数据长度 6. 数据 7.帧尾 8.校验码 四、通信协议代码实现 1. 消息数据发送 a. 通过串口直接发送每一个字节 b. 通过…

16. 机器学习 - 决策树

Hi,你好。我是茶桁。 在上一节课讲SVM之后,再给大家将一个新的分类模型「决策树」。我们直接开始正题。 决策树 我们从一个例子开始,来看下面这张图: 假设我们的x1 ~ x4是特征,y是最终的决定,打比方说是…

十年JAVA搬砖路——Linux搭建Ldap服务器。

1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串: {SSHA}DkSw0…