当前位置: 首页 > news >正文

【Linux】关于Nginx的详细使用,部署项目

前言:

今天小编给大家带来的是关于Nginx的详细使用,部署项目,希望可以给正在学习,工作的你带来有效的帮助!

一,Nginx简介

Nginx是一个高性能的开源Web服务器和反向代理服务器。它最初由Igor Sysoev在2004年开发,旨在解决C10k问题(即同时处理成千上万个并发连接)。Nginx以其出色的性能、可靠性和灵活性而备受欢迎,并被广泛用于构建高流量的网站、应用程序和服务。

Nginx的特点:

  1. 高性能:Nginx采用了事件驱动架构,能够高效地处理大量并发连接。它通过使用异步非阻塞I/O模型,有效地管理系统资源,使得请求的响应时间更短且吞吐量更高。

  2. 反向代理:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,并将响应传递回客户端。这种方式可以提供负载均衡和高可用性,同时还可以实现与后端服务器之间的连接池、缓存和SSL终止等功能。

  3. 静态文件服务:Nginx可以快速地提供静态文件的服务,如HTML、CSS、JavaScript和图像等。它支持高效的文件传输,并可以通过启用gzip压缩来减小传输大小,提高网站性能。

  4. 动态内容处理:除了静态文件服务,Nginx还可以与后端应用程序集成,处理动态内容的请求。它支持FastCGI、uWSGI和SCGI等协议,并能够与各种编程语言(如PHP、Python和Ruby)进行无缝集成。

  5. URL重写和重定向:Nginx提供了强大的URL重写和重定向功能,可以根据特定的规则对URL进行修改或重定向到其他位置。这对于优化网站结构、实现友好的URL和处理旧链接非常有用。

  6. 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中这几个目录代表的含义:

  1. conf目录:这个目录包含了Nginx的配置文件。主要的配置文件是nginx.conf,它定义了全局的Nginx配置以及HTTP、服务器和其他模块的配置指令。

  2. html目录:这个目录通常用于存放Web服务器提供的静态网页文件。当用户访问服务器时,Nginx将从该目录中查找和提供相应的HTML文件。

  3. logs目录:在这个目录中,Nginx会存储日志文件,记录请求、错误和其他与服务器操作相关的信息。常见的日志文件包括access.log(访问日志)和error.log(错误日志)。

  4. 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版《中国计算机学会推荐国际学术会议和期刊目录》(以下简称《目录》) 。 相较于上一版目录&#xff0…...

实现基于 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注入漏洞&#xff…...

基于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笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定 code review! 文章目录 qt-C笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定1.运行2.main.cc3.main.pro 1.运行 2.main.cc 代码 #include <QApplication> #include <QPushButton> #includ…...

HTML全局属性(global attribute)有哪些?

HTML全局属性是指在HTML元素上可用的基本属性&#xff0c;它们适用于所有HTML元素。以下是一些常见的HTML全局属性&#xff1a; 1&#xff1a;class&#xff1a;为元素指定一个或多个类名&#xff0c;用于与CSS样式表关联。 2&#xff1a;id&#xff1a;:为元素指定唯一的标识…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...