【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::为元素指定唯一的标识…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
