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

Nginx-狂神说

Nginx概述

公司产品出现瓶颈?

我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。
在这里插入图片描述

但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。

在这里插入图片描述

于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。

在这里插入图片描述

我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点之上。这个过程用户是无感知的,用户并不知道是哪个服务器返回的结果,我们还希望他可以按照服务器的性能提供不同的权重选择。保证最佳体验!所以我们使用了Nginx。

什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。

其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

Nginx作用?

Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

正向代理
在这里插入图片描述

玩游戏时会用到VPN,打吃鸡带宽延迟的特别的慢,挂VPN就会非常快,因为中国目前不能访问外国的网站的,比如访问谷歌访问不了,但是为什么挂了VPN就能够访问外网了,这里其实是正向代理起了作用。比如说你的电脑,挂了个VPN,就相当于你电脑做了个代理,它会帮你请求外部的资源,比如代理服务器在香港,香港就是可以访问外网的,这个时候你的服务器请求香港服务器,香港服务器再去请求美国服务器,美国服务器就会返回数据到香港服务器,香港服务器就会返回数据给你。

代理客户端的这种翻墙工具就是正向代理。与之同时,代理服务器端的就是反向代理。

动静分离
比如你的项目里有非常多的静态资源,比如你放了bootstrap、jquery的相关js文件,像这样一堆静态资源每次都要从你的jar包里面去加载就非常麻烦,那我希望有个静态资源服务器用来存放这些静态资源,他从静态资源服务器这边加载就好了,能够提升一定的访问速度

Nginx的安装

在这里插入图片描述

windows下安装

linux下安装

Nginx常用命令

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止 -s 表示在当前目录下,所以必须要先进入/usr/local/nginx/sbin目录下执行该命令才不会出问题
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程

nginx配置文件讲解

nginx.conf这个文件里的内容主要分为三大模块,一个是nginx的全局配置,一个是events模块,一个是http模块。

在http模块中有很多个server的配置,server就是可以配置不同的服务。可以看到nginx.conf配置文件中,有没有注释掉的80端口的服务,也有被注释掉的443端口的服务。

# localhost配置
# 此时访问是:http://localhost:80/
localhost / { #配置为/,当访问80端口的根目录,那么就会走到这里面的相关配置#xxx 相关配置
}# 此时访问是:http://localhost:80/admin
localhost /admin { #配置为/,当访问80端口的/admin路径,那么就会走到这里面的相关配置#xxx 相关配置
}

谨记:所有的配置文件后面一定要以;(分号)结尾

演示

需求:我有个jar,使用java -jar xxx.jar运行起来端口分别为8080、8081的两个服务,但是我得访问localhost:8080/和localhost:8081,这时候需要使用nginx进行反向代理和负载均衡处理。
在这里插入图片描述
在这里插入图片描述

当访问localhost:80,直接访问到jar包里内容时,就成功了。

相关文章:

Nginx-狂神说

Nginx概述 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。 但是慢慢的,使用我们平台…...

Python筑基之旅-运算符

目录 一、运算符 1、了解定义 2、理解意义 2-1、基本数据处理 2-2、条件判断 2-3、逻辑操作 2-4、赋值和更新 2-5、位操作 2-6、提高代码可读性 2-7、解决实际问题 2-8、学习其他编程语言的基础 3、探索方法 3-1、理解概念 3-2、练习基本运算 3-3、掌握优先级 …...

【Text2SQL】Spider 数据集

论文:Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task ⭐⭐⭐⭐⭐ EMNLP 2018, arXiv:1809.08887 Dataset: spider GitHub: github.com/taoyds/spider 一、论文速读 本文提出了 Text2SQL 方向的…...

语雀——云知识库/笔记

对于日常进行学习/创作或是记录学习、工作内容与心得的群体来说,能够及时同步的云笔记应用有着广泛的应用场景。近期,我也探索了许多款不同的软件应用,今天来分享一款很有特点的应用——语雀。 语雀,为每一个人提供优秀的文档和知…...

Java学习:电影查询简单系统

1.创建一个movice的对象来存放电影 里面设置构造器(有参和无参) package com.movie;public class movice {//创建一个movice的对象存放电影private int id;private String name;private double price;private double score;private String diector;pri…...

在Mac电脑下怎么部署QAnything?

在Mac电脑下部署QAnything,可以选择使用纯Python环境进行部署,这种方式不依赖GPU,适合在Mac等笔记本电脑上运行。以下是基于QAnything的纯Python环境安装教程的步骤[18]: 安装要求 Python 3.10(建议使用Anaconda3来管…...

单条16g和双条8g哪个好

单条16g和双条8g各有优劣,具体选择要根据个人需求和电脑配置来决定。 以下是一些参考信息: •单条16g内存的价格比双条8g内存的价格低,而且16g的内存容量大,一条内存十分的方便。 •两条8g内存可以组成双通道,电脑运行速度要快一些。 •对于普通使用电脑的人群与热衷于…...

Microsoft VBA Excel 去重小工具

问题简述 在本工作表中,A1:B3单元格样式如下,通过名称管理器B列的单元格被命名为"LinkFile"、“SheetName”、“InputArea”,请实现以下功能:读取Excel文件中的数据,去除重复的数据,并记录每个数…...

数据库管理-第194期 网络加速RDMA初探(20240526)

数据库管理194期 2024-05-26 数据库管理-第194期 网络加速RDMA初探(20240526)1 概念2 发展3 使用总结 数据库管理-第194期 网络加速RDMA初探(20240526) 作者:胖头鱼的鱼缸(尹海文) Oracle ACE A…...

C++小游戏 合集

生化危机 #include<conio.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> #include<direct.h> int n,round,gold0; bool f1,f2,f3,deadfalse,PC_64Bit; char str[4]; struct n…...

【Python爬虫篇】Selenium在获取网页数据方面的使用及采集中国大学课程评论数据

1 selenium概述 1.什么是selenium&#xff1f; &#xff08;1&#xff09;Selenium是一个用于Web应用程序测试的工具。 &#xff08;2&#xff09;Selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 &#xff08;3&#xff09;支持通过各种driver&#…...

【JavaScript】文件下载

文件下载的消息格式 服务器只要在响应头中加入 Content-Disposition: attachment; filename"kxx" 即可触发浏览器的下载功能其中&#xff1a; attachment 表示附件&#xff0c;浏览器看到此字段&#xff0c;触发下载行为&#xff08;不同的浏览器下载行为有所区别&…...

利用Python去除PDF水印

摘要 本文介绍了如何使用 Python 中的 PyMuPDF 和 OpenCV 库来从 PDF 文件中移除水印&#xff0c;并将每个页面保存为图像文件的方法。我们将深入探讨代码背后的工作原理&#xff0c;并提供一个简单的使用示例。 导言 简介&#xff1a;水印在许多 PDF 文件中都很常见&#x…...

Unity Assembly Definition Dotween 引用

原理&#xff1a; 具体Unity程序集原理用法&#xff0c;暂时留坑&#xff0c;不介绍了&#xff0c;相信有很多人也写过了 这里简单放个官方API链接 https://docs.unity3d.com/cn/current/Manual/ScriptCompilationAssemblyDefinitionFiles.html 现象 &#xff1a;Dotween引用…...

重开之数据结构(二刷)

引言: 由于前段时间学习效率不高,导致后面复习前面数据结构没有一个大纲,因此打算重新来学习以下数据结构,期望再次把数据结构学透,并有深刻的印象.并且记录每一次的学习记录 以便于后续复习 二分查找 需求:在有序数组arr内,查找target值 如果找到返回索引位置如果找不到返回…...

JVM(三)

在上一篇中&#xff0c;介绍了JVM组件中的类加载器&#xff0c;以及相关的双亲委派机制。这一篇主要介绍运行时的数据区域 JVM架构图&#xff1a; JDK1.8后的内存结构&#xff1a; (图片来源&#xff1a;https://github.com/Seazean/JavaNote) 而在运行时数据区域中&#…...

【二叉树】:LeetCode:100.相同的数(分治)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;初阶初阶结构刷题 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 1.问题描述&#xff1a; 2.问题分析&#xff1a; 二叉树是区分结构的&#xff0c;即左右子树是不一…...

[AI Google] 介绍 VideoFX,以及 ImageFX 和 MusicFX 的新功能

VideoFX 是来自 labs.google 的最新实验&#xff0c;您可以查看音乐效果和图像效果的新更新&#xff0c;现在在 110 多个国家可用。 生成式媒体正在改变人们构思创意并增强我们的创造力能力的方式。我们致力于与创作者和艺术家合作构建人工智能&#xff0c;以更好地理解这些生成…...

[7] CUDA之常量内存与纹理内存

CUDA之常量内存与纹理内存 1. 常量内存 NVIDIA GPU卡从逻辑上对用户提供了 64KB 的常量内存空间&#xff0c;可以用来存储内核执行期间所需要的恒定数据常量内存对一些特定情况下的小数据量的访问具有相比全局内存的额外优势&#xff0c;使用常量内存也一定程序上减少了对全局…...

python使用base加密解密

原理 base编码是一种加密解密措施&#xff0c;目前常用的有base16、base32和base64。其大致原理比较简单。 以base64为例&#xff0c;base64加密后共有64中字符。其加密过程是编码后将每3个字节作为一组&#xff0c;这样每组就有3*824位。将每6位作为一个单位进行编码&#xf…...

基于角谱传播的MATLAB仿真:从“相机人”到衍射光场的可视化探索

1. 从"相机人"到衍射光场&#xff1a;角谱传播的奇妙之旅 第一次看到"相机人"和Lena相位合成的复振幅场在MATLAB中传播时&#xff0c;那种震撼感至今难忘。就像看着一幅抽象画逐渐显露出隐藏的图案&#xff0c;光强分布中慢慢浮现出原本看不见的相位信息。…...

如何快速上手IAMDinosaur:打造专属AI游戏助手的终极指南

如何快速上手IAMDinosaur&#xff1a;打造专属AI游戏助手的终极指南 【免费下载链接】IAMDinosaur &#x1f984; An Artificial Inteligence to teach Googles Dinosaur to jump cactus 项目地址: https://gitcode.com/gh_mirrors/ia/IAMDinosaur IAMDinosaur是一款令人…...

从湖北师大真题看C语言核心考点:循环、递归、数组实战避坑指南

从湖北师大真题看C语言核心考点&#xff1a;循环、递归、数组实战避坑指南 在C语言的学习过程中&#xff0c;真题练习是检验和提升编程能力的重要途径。湖北师范大学的专升本编程真题涵盖了循环、递归、数组等核心知识点&#xff0c;这些不仅是考试的重点&#xff0c;更是实际开…...

Claude Code与Kimi跨平台部署及API调优实战

1. Claude Code与Kimi跨平台部署指南 最近在折腾AI编程助手时&#xff0c;我发现Claude Code和Kimi这两个工具搭配使用效果出奇的好。作为一个经常在不同操作系统间切换的开发者&#xff0c;我花了两周时间把Windows、macOS和Linux三个平台的部署都摸了个遍&#xff0c;今天就把…...

使用 SciPy 实现 NumPy 数组的重叠拼接与加权融合

本文介绍一种基于 scipy.linalg.block_diag 的通用方法&#xff0c;将两个二维数组按指定重叠宽度进行对齐拼接&#xff0c;并对重叠区域元素取平均值&#xff1b;支持稀疏结构延展&#xff0c;兼顾内存效率与数值精度。 本文介绍一种基于 scipy.linalg.block_diag 的通用…...

新鲜出炉!2026 Agent智能体平台推荐排行 办公/营销/研发全场景适配

一、摘要据IDC发布的《中国模型即服务&#xff08;MaaS&#xff09;及AI大模型解决方案市场追踪&#xff0c;2024H2》报告显示&#xff0c;国内Agent智能体平台市场规模年增速达68%&#xff0c;但市场上产品同质化严重&#xff0c;仅32%的产品能真正适配多行业全场景需求&#…...

别再用扁网线了!实测小米AX3600刷OpenWRT后断流的元凶排查与硬件避坑指南

深度解析OpenWRT网络断流&#xff1a;从硬件避坑到系统调优的全方位指南 当你兴冲冲地给路由器刷上OpenWRT&#xff0c;准备享受开源系统带来的自由与强大功能时&#xff0c;最令人抓狂的莫过于网络频繁断流。那种视频看到一半突然卡住、游戏关键时刻掉线的体验&#xff0c;足以…...

别再死记Twist公式了!用‘拧螺丝’的直觉理解机器人运动学(附Python可视化代码)

从拧螺丝到机器人运动学&#xff1a;用生活直觉破解Twist公式的奥秘 刚接触机器人学的同学&#xff0c;一定对Twist&#xff08;速度旋量&#xff09;这个概念又爱又恨——它既能精确描述刚体运动&#xff0c;又抽象得让人摸不着头脑。传统教材一上来就抛出ω和v的数学定义&…...

终极DLSSTweaks配置指南:5步快速解锁NVIDIA DLSS隐藏画质

终极DLSSTweaks配置指南&#xff1a;5步快速解锁NVIDIA DLSS隐藏画质 【免费下载链接】DLSSTweaks Tweak DLL for NVIDIA DLSS, force DLAA on DLSS-supported titles, tweak scaling ratios & DLSS 3.1 presets, override DLSS versions without overwriting game files. …...

3步实现QQ空间完整备份:GetQzonehistory让数字记忆永不丢失

3步实现QQ空间完整备份&#xff1a;GetQzonehistory让数字记忆永不丢失 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代&#xff0c;我们的青春记忆大多沉淀在QQ空间里&#…...