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…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
