【Linux】关于Nginx的详细使用,部署项目
前言:
今天小编给大家带来的是关于Nginx的详细使用,部署项目,希望可以给正在学习,工作的你带来有效的帮助!
一,Nginx简介
Nginx是一个高性能的开源Web服务器和反向代理服务器。它最初由Igor Sysoev在2004年开发,旨在解决C10k问题(即同时处理成千上万个并发连接)。Nginx以其出色的性能、可靠性和灵活性而备受欢迎,并被广泛用于构建高流量的网站、应用程序和服务。
Nginx的特点:
高性能:Nginx采用了事件驱动架构,能够高效地处理大量并发连接。它通过使用异步非阻塞I/O模型,有效地管理系统资源,使得请求的响应时间更短且吞吐量更高。
反向代理:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,并将响应传递回客户端。这种方式可以提供负载均衡和高可用性,同时还可以实现与后端服务器之间的连接池、缓存和SSL终止等功能。
静态文件服务:Nginx可以快速地提供静态文件的服务,如HTML、CSS、JavaScript和图像等。它支持高效的文件传输,并可以通过启用gzip压缩来减小传输大小,提高网站性能。
动态内容处理:除了静态文件服务,Nginx还可以与后端应用程序集成,处理动态内容的请求。它支持FastCGI、uWSGI和SCGI等协议,并能够与各种编程语言(如PHP、Python和Ruby)进行无缝集成。
URL重写和重定向:Nginx提供了强大的URL重写和重定向功能,可以根据特定的规则对URL进行修改或重定向到其他位置。这对于优化网站结构、实现友好的URL和处理旧链接非常有用。
SSL/TLS支持:Nginx可以配置和管理SSL/TLS证书,实现HTTPS安全连接。它支持多种加密算法和协议版本,并提供强大的加密功能,确保数据在传输过程中的安全性。
总之,Nginx是一个高性能、灵活且可扩展的Web服务器和反向代理服务器,广泛应用于构建高流量的网站和应用程序。它的设计使得它能够有效地处理并发连接和动态内容,并提供负载均衡、缓存、URL重写和重定向等功能,使得网站具备更好的性能、可靠性和安全性。
二,Nginx使用
2.1.Nginx的安装
2.1.1一键安装4个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.1.2下载并解压安装包
这个网址自动给你下载 http://nginx.org/download/nginx-1.13.7.tar.gz
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
检查是否安装成功
cd /usr/local/nginx/
在Nginx中这几个目录代表的含义:
conf目录:这个目录包含了Nginx的配置文件。主要的配置文件是nginx.conf,它定义了全局的Nginx配置以及HTTP、服务器和其他模块的配置指令。
html目录:这个目录通常用于存放Web服务器提供的静态网页文件。当用户访问服务器时,Nginx将从该目录中查找和提供相应的HTML文件。
logs目录:在这个目录中,Nginx会存储日志文件,记录请求、错误和其他与服务器操作相关的信息。常见的日志文件包括access.log(访问日志)和error.log(错误日志)。
sbin目录:它是指"system binary",即系统二进制文件。在这个目录中,存放着Nginx的可执行文件。通常,Nginx的启动脚本和相关的管理工具也可以在该目录下找到。
2.1.4启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx 下:
输入指令
cd sbin/
进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx
# 重启
./nginx -s reload
# 关闭
./nginx -s stop
# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf
2.2.2
4) 设置防火墙开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
查看允许的端口:
firewall-cmd --reload && firewall-cmd --list-port
三,Nginxtomcat负载均衡
3.1打开端口8081
firewall-cmd --zone=public --add-port=8081/tcp --permanent
3.2删除tomcat中已有的项目
rm -rf 项目名*
3.3修改服务配置
1. HTTP端口,默认8080,如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010
测试tomcat是否成功:
ip:端口
配置成功后要重启
./nginx -s reload
如果还是不行的话,那就使用命令到编辑中修改:
8080为服务器的端口
#服务器的集群upstream tomcat_list { #服务器集群名字server 127.0.0.1:8080 weight=1; #服务器1 weight是权重的意思,权重越大,分配的概率越大。server 127.0.0.1:8080 weight=2; #服务器2 weight是权重的意思,权重越大,分配的概率越大}
四、后端接口部署
1、导入项目启动
用我们的客户端工具在我们两个tomcat中webapps文件夹里面都放入我们的war包。
如果你的两个tomcat都是开启的状态我们在两个tomcat里面停止运行./shutdown.sh。
然后我们再开启两个tomcat服务器./startup.sh。
MySQL的数据可以查看【Linux】Linux项目部署及更改访问端口号。
解压前端
yum install -y unzip
unzip blog.zip
五,前端项目打包
进入到前端项目的根目录利用cmd窗口执行以下命令
npm run build
当我们的node环境运行时,点击这个静态网页也可以进入到我们的前端页面
5.1.上传项目
在/usr/local/nginx/conf/目录下新建一个文件夹存放项目
mkdir mypro
然后将项目拷贝到当前文件夹中
下载unzip命令解压zip文件
yum install -y unzip
进入到当前存放项目的文件夹然后进行解压
cd mypro
unzip blog.zip
2.修改代理服务器
添加新代理
location ^~/api/ {proxy_pass http://tomcat_list/;}
将路径修改为自己前端项目路径
location / {root /user/local/mypro/dist;#proxy_pass http://tomcat_list;index index.html index.htm;}
3. 配置域名
修改当前文件目录下的hosts文件
C:\Windows\System32\drivers\etc
在hosts文件中编写自己的ip地址和域名,这样就可以在本机通过域名去访问自己的项目了
相关文章:

【Linux】关于Nginx的详细使用,部署项目
前言: 今天小编给大家带来的是关于Nginx的详细使用,部署项目,希望可以给正在学习,工作的你带来有效的帮助! 一,Nginx简介 Nginx是一个高性能的开源Web服务器和反向代理服务器。它最初由Igor Sysoev在2004年…...
编写 navigation2 控制器插件
简介 本教程展示了如何创建自己的控制器插件。在本教程中,我们将基于这篇论文实现纯追踪路径跟踪算法。建议您阅读该论文。 注意:本教程基于 Nav2 堆栈中以前存在的简化版本的 Regulated Pure Pursuit 控制器。您可以在此处找到与本教程相匹配的源代…...

计算机网络 第六章应用层
文章目录 1 应用层功能概述2 网络应用模型:客户服务器(CS)3 网络应用模型:PeerToPeer(P2P)4 域名和域名系统5 常见域名解析服务器6 两种域名解析过程7 什么是FTP8 FTP的工作原理9 EMail的组成 1 应用层功能概述 2 网络应用模型:客户服务器(CS…...
人工智能领域CCF推荐国际学术刊物最新目录(全)
2021年1月,CCF决定启动新一轮中国计算机学会推荐国际学术会议和期刊目录调整工作并委托CCF学术工作委员会组织实施。 2023年3月8日, 中国计算机学会正式发布了2022版《中国计算机学会推荐国际学术会议和期刊目录》(以下简称《目录》) 。 相较于上一版目录࿰…...

实现基于 Azure DevOps 的数据库 CI/CD 最佳实践
数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA 调研报告 DORA(DevOps Research &am…...
上海实习小记
8月3日入职10月27日离职,原本还想做满3个月再走,可惜公司提早要迁到成都,就只好 离职了回学校了。在博客随便写写记录一下这几个月的生活吧,想到哪里写到哪里 实习的公司是一个小公司,开发一款类似于咸鱼之王的游戏&am…...

uniapp实现路线规划
UniApp是一个基于Vue.js框架开发的跨平台应用开发框架,可以同时构建iOS、Android、H5等多个平台的应用。它使用了基于前端技术栈的Web开发方式,通过编写一套代码,即可在不同平台上运行和发布应用。 UniApp具有以下特点: 跨平台开…...

飞利浦双串口51单片机485网关
主要功能将PC端的数据接收下来,分发到不同的设备,也是轮询设备数据读取回来,打包回传到PC端,数据包包头包尾识别,数据校验,接收超时处理,将协议结构化处理,协议的改动不需要改动程序…...

生态扩展:Flink Doris Connector
生态扩展:Flink Doris Connector 官网地址: https://doris.apache.org/zh-CN/docs/dev/ecosystem/flink-doris-connector flink的安装: tar -zxvf flink-1.16.0-bin-scala_2.12.tgz mv flink-1.16.0-bin-scala_2.12.tgz /opt/flinkflink环境…...

HarmonyOS(二)—— 初识ArkTS开发语言(上)之TypeScript入门
前言 Mozilla创造了JS,Microsoft创建了TS,而Huawei进一步推出了ArkTS。因此在学习使用ArkTS前,需要掌握基本的TS开发技能。 ArkTS介绍 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上&am…...

从零开始实现神经网络(一)_NN神经网络
参考文章:神经网络介绍 一、神经元 这一神经网络的基本单元,神经元接受输入,对它们进行一些数学运算,并产生一个输出。 这里有三步。 首先,将每个输入(X1)乘以一个权重: 接下来&…...

C语言 每日一题 Day10
1.使用函数判断完全平方数 本题要求实现一个判断整数是否为完全平方数的简单函数。 函数接口定义: int IsSquare(int n); 其中n是用户传入的参数,在长整型范围内。如果n是完全平方数,则函数IsSquare必须返回1,否则返回0。 代码实…...

C++继承——矩形和长方体
Rectangle矩形类 /*矩形类*/ class Rectangle { private:double L 0;double W 0; public:Rectangle() default;Rectangle(double a, double b);double GetArea(); /*矩形面积*/double GetGirth(); /*矩形周长*/ }; /*构造函数*/ Rectangle::Rectangle(double a, double b) …...

代码随想录打卡第五十八天|● 583. 两个字符串的删除操作 ● 72. 编辑距离
583. 两个字符串的删除操作 题目: 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 题目链接: 583. 两个字符串的删除操作 解题思路: dp数组的含义&am…...
面试流程之——程序员如何写项目经验
在简历中介绍IT项目经验,你可以遵循以下步骤: 明确项目目标:首先,清晰地阐述项目的目标。这可以是提升某个软件的性能,改进某个系统的用户界面,或者增加某款产品的功能。让读者了解你的工作与项目的整体目…...

框架安全-CVE 漏洞复现DjangoFlaskNode.jsJQuery框架漏洞复现
目录 服务攻防-框架安全&CVE复现&Django&Flask&Node.JS&JQuery漏洞复现中间件列表介绍常见语言开发框架Python开发框架安全-Django&Flask漏洞复现Django开发框架漏洞复现CVE-2019-14234(Django JSONField/HStoreField SQL注入漏洞ÿ…...

基于SSM的理发店管理系统
基于SSM的理发店管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 公告信息 管理员界面 用户界面 摘要 基于SSM(Spring、Spring MVC、…...

2.Spark的工作与架构原理
概述 目标: spark的工作原理spark数据处理通用流程rdd 什么是rddrdd 的特点 spark架构 spark架构相关进程spark架构原理 spark的工作原理 spark 的工作原理,如下图 图中中间部分是spark集群,也可以是基于 yarn 的,图上可以…...

qt-C++笔记之带有倒计数显示的按钮,计时期间按钮锁定
qt-C笔记之带有倒计数显示的按钮,计时期间按钮锁定 code review! 文章目录 qt-C笔记之带有倒计数显示的按钮,计时期间按钮锁定1.运行2.main.cc3.main.pro 1.运行 2.main.cc 代码 #include <QApplication> #include <QPushButton> #includ…...
HTML全局属性(global attribute)有哪些?
HTML全局属性是指在HTML元素上可用的基本属性,它们适用于所有HTML元素。以下是一些常见的HTML全局属性: 1:class:为元素指定一个或多个类名,用于与CSS样式表关联。 2:id::为元素指定唯一的标识…...
Python爬虫实战:研究demiurge框架相关技术
1. 引言 在当今数字化时代,互联网上蕴含着海量的有价值信息。爬虫技术作为获取这些信息的重要手段,被广泛应用于学术研究、商业分析、舆情监测等多个领域。然而,构建一个高效、稳定且可维护的爬虫系统面临诸多挑战,如网页结构复杂多变、反爬机制日益严格、数据处理流程繁琐…...

低代码逻辑引擎配置化实战:三步穿透审批记录查询
在堆积如山的报销单中埋头寻找某笔特殊费用的审批轨迹在跨部门协作时被追问"这个合同到底卡在哪个环节" 在快节奏的办公自动化场景中,这些场景是很常见的,传统OA系统中分散的审批记录查询方式往往太繁琐。 为破解这一痛点,在JVS低…...

【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
以下是全国产化飞腾AI加固服务器采用飞腾昇腾PCIe Switch解决方案: 🖥️ 一、硬件架构亮点 国产算力双擎 飞腾处理器:搭载飞腾FT2000/64核服务器级CPU(主频1.8-2.2GHz),支持高并发任务与复杂计算&a…...

嵌入式学习--江协stm32day5
USART 1. 引脚与接口层 异步引脚: TX:发送数据输出;RX:接收数据输入;SW_RX:单线半双工模式的接收引脚(替代 RX)。 同步引脚:SCLK:同步模式下的时钟输出&…...
人工智能:网络安全的“智能守护者”
在数字化时代,网络安全已经成为企业和个人面临的重大挑战。随着网络攻击的复杂性和频率不断增加,传统的安全防护手段已经难以应对。人工智能(AI)技术的出现为网络安全带来了新的希望和解决方案。本文将探讨人工智能在网络安全中的…...
查找 Vue 项目中未使用的依赖
在 Vue 项目中查找未使用的依赖可以通过以下几种方法: 1. 使用 depcheck 工具 depcheck 是一个专门用于查找项目中未使用依赖的工具。 安装: bash npm install -g depcheck使用: bash depcheck它会列出: 未使用的依赖缺失…...
Vue---vue使用AOS(滚动动画)库
AOS介绍 aos.js是一个轻量级的动画库插件,可以简单的实现页面滚动触发动画效果,可以让我们网页看起来更加生动(高大上) 官网演示地址:aos.js 安装 YARN, NPM, BOWER安装 yarn add aos npm install aos --save bower install aos --save CDN引入 <link href"https…...
时间序列预测:LSTM与Prophet对比实验
时间序列预测:LSTM与Prophet对比实验 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 时间序列预测:LSTM与Prophet对比实验摘要引言实验设计1. 数据集选择2. 实验流程 模型架构对比1. LSTM架…...

【HarmonyOS5】UIAbility组件生命周期详解:从创建到销毁的全景解析
⭐本期内容:【HarmonyOS5】UIAbility组件生命周期详解:从创建到销毁的全景解析 🏆系列专栏:鸿蒙HarmonyOS:探索未来智能生态新纪元 文章目录 前言生命周期全景图详细状态解析与最佳实践🎬 Create状态&#…...
Nginx Stream 层连接数限流实战ngx_stream_limit_conn_module
1.为什么需要连接数限流? 数据库/Redis/MQ 连接耗资源:恶意脚本或误配可能瞬间占满连接池,拖垮后端。防御慢速攻击:层叠式限速(连接数+带宽)可阻挡「Slow Loris」之类的 TCP 低速洪水。公平接入…...