Linux环境下的Java项目部署技巧:安装 Nginx
-
Nginx 的简介:
- Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP / POP3 / SMTP 代理服务器。
- 它可以作为网站静态资源的 web 服务器,也可以作为其他应用服务器的反向代理服务器。同时, Nginx 还具有负载均衡的功能。
-
Nginx 主要功能:
- 静态资源服务:Nginx 可以作为 Web 服务器,直接处理静态文件请求,如 HTML、CSS、JavaScript、图片等。
- 反向代理:Nginx 可以作为反向代理服务器,然后将应用服务器的响应返回给客户端。这种方式可以隐藏后端服务器的真实地址,提高系统的安全性,并且可以实现负载均衡,将请求分发到多个后端服务器上,提高系统的处理能力
- 负载均衡:Nginx 内置了负载均衡模块,可以实现多种负载均衡算法,如轮询、权重轮询、IP哈希等,根据需要将请求分发到不同的后端服务器上
- HTTP 缓存:Nginx 支持 HTTP 缓存功能,可以缓存静态资源,减少对后端服务器的请求,提高系统的响应速度
- SSL / TLS 加密:Nginx 支持 SSL/TLS 协议,可以对传输的数据进行加密,提高系统的安全性
反向代理和正向代理:
-
反向代理:
- 概念:
- 反向代理服务器位于用户与目标服务器之间,但对用户而言,反向代理服务器加u相当于目标服务器,及用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无需在用户端任何设定。
- 反向代理则是针对服务器端的代理方式。客户端请求目标服务器的内容时,反向代理服务器会代替目标服务器处理这些请求,并将结果返回给客户端。客户端只会知道代理服务器的 IP 地址,而不知道实际的后端服务器集群的存在。反向代理通常用于负载均衡,将请求分发到多个后端服务器上,提高系统的处理能力。此外,反向代理还可以作为内容服务器的替身,提供安全防护,过滤掉不安全的请求。
- 作用:
- 反向代理服务器通常可以用来作为 Web 加速,即使用反向代理作为 Web 服务器的前置机来降低网络和服务器的负载,提高访问效率
- 特点:
- 反向服务器时位于用户和目标服务器之间的
- 用户以为反射代理服务器就是真实服务器。用户不知道真实的服务器到底是谁。
- 反向代理服务器保护客户端信息,称之为服务器端代理
- 概念:
-
正向代理:
- 概念:
- 正向代理是位于客户端和目标服务器之间的代理服务器。
- 客户端向代理服务器发送请求,并指定目标服务器,代理服务器将请求转交给目标服务器,并将从目标服务器获得内容返回给客户端
- 正向代理需要客户端进行一些特别的设置才能使用。它的应用场景包括访问被限制的资源,例如:翻墙等,此时正向代理可以隐藏客户端的 IP 地址,免受攻击。
- 此外,正向代理还可以作为缓存,存储目标服务器返回的数据,提高访问速度。
- 特点:
- 正向代理服务器是位于用户与服务器之间
- 用户请求时,非常明确目标服务器到底是谁,服务器不清除到底是谁访问,以为是代理服务直接发起的请求
- 正向代理服务器保护了用户的信息,所以称之为客户端代理
- 概念:
-
代理总结:
- 反向代理:时服务器端代理,只要用户访问服务器,都是反向代理,实现业务调用
- 正向代理:是客户端代理,只要用户上网就使用正向代理,实现网络通信
- 整个上网过程都是先正向后反向代理
Nginx 安装:
-
上传 Nginx 压缩包到指定目录
-
解压 Nginx 压缩包
-
配置编译 Nginx
- 配置编译方法:
./configure
- 配置编译后结果信息:

- 配置编译方法:
-
编译 Nginx:
- 在 Nginx 源文件目录中直接运行 make 命令
-
安装 Nginx
- 在运行 make 命令的 Nginx 目录中运行 make install 命令
- 安装后可以运行 whereis nginx 命令查找 Ngninx 工作目录
-
配置 Nginx:
- 配置文件位于 conf/ngixn.conf

- 配置文件位于 conf/ngixn.conf
-
Linux 下使用 Nginx:
- 进入 nginx/sbin 目录中执行如下命令:
- 启动:./nginx
- 重启:./nginx -s reload
- 关闭:./nginx -s stop
- 进入 nginx/sbin 目录中执行如下命令:
相关文章:
Linux环境下的Java项目部署技巧:安装 Nginx
Nginx 的简介: Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP / POP3 / SMTP 代理服务器。它可以作为网站静态资源的 web 服务器,也可以作为其他应用服务器的反向代理服务器。同时, Nginx 还具有负载均衡的功能。 N…...
前端 Vue 性能提升策略
一、引言 前端性能优化是确保 Web 应用快速响应和流畅用户体验的关键。对于使用 Vue.js 构建的应用,性能优化不仅涉及通用的前端技术,还包括针对 Vue 特性的特定优化措施。本文将从多个方面探讨如何全面提升前端和 Vue 应用的性能。 二、前端性能优化基础 1. 减少初始加载…...
深入理解linux中的文件(上)
1.前置知识: (1)文章 内容 属性 (2)访问文件之前,都必须打开它(打开文件,等价于把文件加载到内存中) 如果不打开文件,文件就在磁盘中 (3&am…...
Unity特效插件GodFX
2022Unity安装使用方法,将MinDrawer.cs文件MinAttribute改成UnityEngine.PostProcessing.MinAttribute 参考链接: Unity3D特效插件GodFX使用教程_哔哩哔哩_bilibili...
从 C 到 C++:理解结构体中字符串的存储与操作
对于刚入门 C/C 的程序员来说,字符串的存储和操作可能是个容易混淆的知识点。在 C 中,std::string 提供了非常友好的接口,我们可以轻松地在结构体中使用字符串类型,无需关注底层细节。然而,在 C 语言中,字符…...
Linux进阶——时间服务器
NTP是网络时间协议(network time protocol)的简称(应用层的协议),通过UDP123端口进行网络时钟同步。 Chrony是一个开源自由的网络时间协议NTP的客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器(…...
力扣 295. 数据流的中位数
🔗 https://leetcode.cn/problems/find-median-from-data-stream/ 题目 数据流中不断有数添加进来,add 表示添加数据,find 返回数据流中的中位数 思路 大根堆存储数据流中偏小的数据小根堆存储数据流中偏大的数据若当前的 num 比大根堆的…...
【Linux】进程状态和优先级
个人主页~ 进程状态和优先级 一、进程状态1、操作系统进程状态(一)运行态(二)阻塞态(三)挂起态 2、Linux进程状态(一)R-运行状态并发执行 (二)S-浅度睡眠状态…...
携程Java开发面试题及参考答案 (200道-上)
说说四层模型、七层模型。 七层模型(OSI 参考模型) 七层模型,即 OSI(Open System Interconnection)参考模型,是一种概念模型,用于描述网络通信的架构。它将计算机网络从下到上分为七层,各层的功能和作用如下: 物理层:物理层是计算机网络的最底层,主要负责传输比特流…...
Docker 部署教程jenkins
Docker 部署 jenkins 教程 Jenkins 官方网站 Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)过程。它帮助开发人员自动化构建、测试和部署应用程序,显著提高软件开发的效率和质量…...
深入理解开放寻址法中的三种探测序列
一、引言 开放寻址法是解决散列表中冲突的一种重要方法,当发生冲突(即两个不同的键通过散列函数计算得到相同的散列值)时,它会在散列表中寻找下一个可用的存储位置。而探测序列就是用于确定在发生冲突后,依次尝试哪些…...
图像噪声处理技术:让图像更清晰的艺术
在这个数字化时代,图像作为信息传递的重要载体,其质量直接影响着我们的视觉体验和信息解读。然而,在图像采集、传输或处理过程中,难免会遇到各种噪声干扰,如高斯噪声、椒盐噪声等,这些噪声会降低图像的清晰…...
linux运行级别
运行级别:指linux系统在启动和运行过程中所处的不同的状态。 运行级别之间的切换:init (级别数) 示例: linux的运行级别一共有7种,分别是: 运行级别0:停机状态 运行级别1:单用户模式/救援模式…...
深入剖析Electron的原理
Electron是一个强大的跨平台桌面应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建各种桌面应用程序。了解Electron的原理对于开发者至关重要,这样在设计应用时能更合理,遇到问题也能更准确地分析和解决。下面将从多个方面深入剖析E…...
C++ 游戏开发:完整指南
目录 什么是游戏开发? 为什么选择 C 进行游戏开发? C 游戏开发:完整指南 1. 理解游戏开发的基础 2. 学习游戏引擎 3. 精通 C 进行游戏开发 4. 学习数学在游戏开发中的应用 5. 探索图形编程 6. 专注于游戏开发的某一领域 7. 通过游戏项目进行实…...
WebForms SortedList 深度解析
WebForms SortedList 深度解析 引言 在Web开发领域,对于数据结构的理解与应用至关重要。其中,SortedList类在WebForms中是一个常用的数据结构,它能够帮助开发者高效地管理有序数据集合。本文将深入解析SortedList类在WebForms中的应用,包括其基本概念、常用方法、性能特点…...
【hot100】刷题记录(12)-回文链表
题目描述: 给你一个单链表的头节点 head ,请你判断该链表是否为 回文链表 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2: …...
深入理解 Unix Shell 管道 Pipes:基础和高级用法 xargs tee awk sed等(中英双语)
深入理解 Unix Shell 管道(|) 1. 什么是管道(Pipe)? 管道(|)是 Unix/Linux Shell 中最强大的功能之一,它允许将一个命令的输出作为另一个命令的输入,从而实现数据流的处…...
[MySQL]事务的理论、属性与常见操作
目录 一、事物的理论 1.什么是事务 2.事务的属性(ACID) 3.再谈事务的本质 4.为什么要有事务 二、事务的操作 1.事务的支持版本 2.事务的提交模式 介绍 自动提交模式 手动提交模式 3.事务的操作 4.事务的操作演示 验证事务的回滚 事务异常…...
RS485接口EMC
A.滤波设计要点 L1为共模电感,共模电感能够衰减共模干扰,对单板内部的干扰以及外部的干扰都能抑制,能提高产品的抗干扰能力,同时也能减小通过485信号线对外的辐射,共模电感阻抗选择范围为120Ω/100MHz ~2200Ω/100MHz…...
AB下载管理器终极指南:高效管理你的下载任务
AB下载管理器终极指南:高效管理你的下载任务 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager AB下载管理器是一款基于Kotlin开发的开源跨平…...
Crustocean/conch:轻量级容器化工具,简化开发者本地环境搭建
1. 项目概述:一个面向开发者的轻量级容器化工具最近在和一些做后端开发的朋友聊天,发现大家普遍有个痛点:本地开发环境和线上环境不一致,导致“在我机器上好好的”这种经典问题频繁上演。虽然Docker已经普及,但完整的D…...
涿州靠谱软体沙发家具城,为你打造舒适家居的理想之选!
在涿州,选择一家靠谱的软体沙发家具城至关重要,它不仅关系到家居的舒适度,还影响着生活品质。今天就为大家推荐涿州市雅木轩家具店(简称:旭日家具),并将它与其他大厂进行对比,让你更…...
Bash脚本集成AI:实现自然语言到命令行的自动化运维工具
1. 项目概述:当Bash脚本遇见AI,自动化运维的新范式最近在GitHub上看到一个挺有意思的项目,叫“Hezkore/bash-ai”。光看名字,你可能会有点懵:Bash脚本和AI,这两个看似八竿子打不着的玩意儿,怎么…...
从AwesomeCursorPrompt看提示工程:构建高效AI编程协作工作流
1. 项目概述:从“AwesomeCursorPrompt”看提示工程的演进最近在GitHub上看到一个挺有意思的项目,叫“AwesomeCursorPrompt”。光看名字,可能很多朋友会有点懵——“Cursor”是那个AI代码编辑器,“Prompt”是提示词,那这…...
打破偏见!Java做AI不是不行,是2026年最被低估的红利
长久以来,行业里一直有个固有认知:AI是Python的主场,Java做AI笨重、生态弱、落地难。很多Java企业团队看着AI浪潮席卷各行各业,要么束手观望,要么被迫切换Python技术栈重构系统,不仅成本高昂,还…...
Llama 的演变:从 Llama 1 到 Llama 3.1
原文:towardsdatascience.com/the-evolution-of-llama-from-llama-1-to-llama-3-1-13c4ebe96258 本文与 Rafael Guedes 共同撰写。 简介 Meta 已经发布了其大型语言模型(LLM)Llama 的三个主要版本,以及一个较小的更新࿰…...
CircuitPython实战:用传感器数据驱动NeoPixel灯光效果
1. 项目概述如果你刚拿到一块像Adafruit Circuit Playground Express这样的开发板,看着上面一圈彩色的NeoPixel LED和一堆传感器,可能会有点无从下手。别担心,这几乎是每个嵌入式开发者的必经之路。这块板子集成了光传感器、温度传感器、加速…...
Git 查看某个文件的修改记录
Git 查看某个文件的修改记录 git log – filename filename为全路径 git log – aa/bb/cc/dd/ee/ff.c...
