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

Spring学习——Nginx

Nginx概述

Nginx介绍

Nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文: Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

官网: https://nginx.org/

Nginx下载和安装

可以到Nginx官方网站下载Nginx的安装包,地址为: https://nginx.org/en/download.html

安装过程:

  1. 安装依赖包

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    
  2. 下载Nginx安装包

    wget https://nginx.org/download/nginx-1.16.1.tar.gz
    
  3. 解压

    tar -zxvf nginx-1.16.1.tar.gz
    
  4. cd nginx-1.16.1
    
  5. ./configure --prefix=/usr/ local/nginx6、make && make install
    

Nginx目录结构

Nginx的目录结构
重点目录/文件:

  • conf/nginx.conf
    nginx配置文件
  • html
    存放静态文件(html、css、Js等)
  • logs
    日志目录,存放日志文件
  • sbin/nginx
    二进制文件,用于启动、停止Nginx服务

1

Nginx命令

查看版本

查看Nginx版本可以使用命令:

./nginx -v

检查配置文件正确性

在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:

./nginx -t

启动和停止

启动Nginx服务使用如下命令:

./nginx

停止Nginx服务使用如下命令:

./nginx -s stop

启动完成后可以查看Nginx进程:

ps -ef | grep nginx

2

重新加载配置文件

当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

./nginx -s reload

Nginx配置文件结构

Nginx配置文件(conf/nginx.conf)整体分为三部分:

  • 全局块
    和Nginx运行相关的全局配置
  • events块
    和网络连接相关的配置
  • http块
    代理、缓存、日志记录、虚拟主机配置
    • http全局块
    • Server块
      • Server全局块
      • location块

注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。

Nginx具体应用

部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。

相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。

将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

server {listen 80;#监听端口server_name localhost;#服务器名称location / { #匹配客户端请求urlroot html; #指定静态资源根目录index index.html; #指定默认首页}
}

反向代理

  • 正向代理

是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

  • 反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。

用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

  • 配置反向代理

    server {listen 82;server_name localhost;location / {proxy_pass http://192.168.138.101:8080; #反向代理配置,将请求转发到指定服务}
    }
    

负载均衡

早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

配置负载均衡:

upstream targetserver{    #upstream指令可以定义一组服务器server 192.168.138.101:8080;server 192.168.138.101:8081;
}
server {listen8080;server_name localhost;location / {proxy_pass http://targetserver;}
}

负载均衡策略:

名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式

配置方法:

server 192.168.138.101:8080 weight=5;
server 192.168.138.100:8080; weight=10;

相关文章:

Spring学习——Nginx

Nginx概述 Nginx介绍 Nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网…...

记录 vue-cli 安装过程

1. VueCli CLI 是 Commond-Line Interface 的缩写 如果开发大型项目,肯定需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情,那么你必然需要使用 VueCLI,使用 VueCLI 可以快速搭建 vue 开发环境以及对应的 webpack 配置。 …...

含氢微网优化调度模型matlab

目录 1 主要内容 模型示意图 目标函数 2 部分程序 3 程序结果 4 下载链接 1 主要内容 最近咨询含氢微网优化调度模型的同学较多,本次就分享一个高质量的源码资源。该程序方法复现《Simulation of design and operation of hydrogen energy utilization syste…...

【springcloud开发教程】路由网关——zuul

官方资料:https://github.com/Netflix/zuul/ 什么是Zuul? Zuul包含了两个主要的功能:路由和过滤 路由功能将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预&#…...

DF竞赛平台携手嬴彻科技与清华大学智能产业研究院,助力自动驾驶挑战赛圆满落幕!

由DataFountain竞赛平台(简称DF平台)提供办赛支持的「首届“嬴彻-清华AIR杯”自动驾驶挑战赛:决策规划算法」已圆满落幕。作为一场前沿性自动驾驶类比赛,本次大赛立足“高速道路”和“城市道路”两大真实场景,选择“半…...

234:vue+openlayers 加载本地shp数据,在map上显示图形

第234个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用shapefile读取本地的shp数据,并在地图上显示图形。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果安装引用配置方式示例源代码(共143行)相关API参考:专栏…...

网络模型-网络体系结构(OSI、TCP/IP)

网络模型(网络体系结构) 网络模型网络的体系结构OSI模型TCP/IP模型OSI和TCP/IP模型对应关系图 常见网络协议 网络模型 网络的体系结构 1、网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起…...

园区智慧导览地图软件,智慧工厂导航定位怎么解决方案的

智慧工厂导航定位怎么解决方案的地图新基建是行业的核心数字基础需求之一,行业内中已构建了较为完整的城市级地理信息系统。园区管理涉及众多方面,因此园区的智慧信息化建设至关重要,需求越来越广泛。在智慧园区中,基于园区的电子…...

Redis高可用之3种集群方案对比

Redis集群方案使用建议: Redis cluster:除非是1000个节点以上的超大规模集群,优先考虑使用Redis clustercodis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis clustertwemproxy:不建…...

java 线程唤醒于阻塞的常用方法

1.分类描述 1.sleep() 休眠2.suspend() 暂停和 resume() 继续3.yield() 让步 就是我放弃本次执行,但继续排队,下一次有机会在执行。 4.wait() 和 notify() notifyAll() 注:这两个方法,属于Object类,而不属于Thread…...

面包多面包多面包多面包多面包多面包多

1.背景 1.摘要 本文是针对智慧政务中的文本数据挖掘应用的研究。通过建立基于三层网络结构的fastText文本分类模型,聚类量化模型,熵权评估模型解决了群众留言分类,热点问题挖掘,答复意见评价等问题。 针对群众留言分类问题&#…...

windows下Tomcat安装

目录 1.安装java环境 2.配置Tomcat环境变量 3.安装服务 4.启动前修改配置文件 (1)设置tomcat端口 (2)设置临时日志等文件夹的位置 5.放入应用 6.启动Tomcat服务 1.安装java环境 安装tomcat版本对应的JDK 比如:…...

4月17号软件资讯更新合集.....

CrateDB 5.3.0 发布,分布式 SQL 数据库 CrateDB 是一个分布式的 SQL 数据库,使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性,最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些…...

[java基础]面向对象(五)

访问控制修饰符:--------------保护数据的安全(隐藏数据、暴露行为),实现封装 public:公开的,任何类 private:私有的,本类 protected:受保护的,本类、派生类、同包类 默认的&…...

React应用(基于React脚手架)

目录 前言:一、使用create-react-app创建react应用1、什么是 react 脚手架?2. 创建 cli 脚手架方式13. 创建 cli 脚手架方式24. npx:5. react脚手架项目结构6. 功能界面的组件化编码流程(通用)7. 如何更改脚手架版本 二、React 组…...

Redis(03)List--附有示例

文章目录 reids-listBLMOVEBLMPOPBLPOPBRPOPBRPOPLPUSHLINDEXLINSERTLLENLMOVELMPOPLPOPLPOSLPUSHLPUSHXLRANGELREMLSETLTRIMRPOPRPOPLPUSHRPUSHRPUSHX reids-list 本文介绍了Redis中的表命令。LSET用于设置列表中指定索引位置的元素的值;LTRIM用于按照索引范围修剪…...

openEuler-linux下部署zabbix-超级详细

一、准备工作 下载:zabbix包 地址:下载Zabbix 准备2台openEuler-linux虚拟机: linux-1:当服务器端 IP地址:192.168.100.100 修改hosts文件 [rootzbx ~]# vim /etc/hosts 192.168.100.100 zbx.xx.cn linux-2&…...

nginx 简介 第四章

一、Nginx简介 1、Nginx简介 Nginx(特点:占用内存少,并发能力强) Nginx是一个高性能的 HTTP 和反向代理服务器。 Nginx是一款轻量级的 Web 服务器/反向代理服务器及电子邮件 单台物理服务器可支持30 000~50 000个并发…...

c++ float32 与 float16 互转

背景: 最近用到一块推理加速卡时,推理输入的数据是 float16 类型,而我们平常用到的数据是 float 类型,也就是 float32类型,这需要输入数据时float32 转 float16,解析输出数据时 float16 转 float。 参考&…...

Redis问题

一、认识Redis 1. 什么是 Redis? Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景&#…...

PyTorch池化层实战:3种池化效果对比与可视化(附完整代码)

PyTorch池化层实战:3种池化效果对比与可视化(附完整代码) 在计算机视觉任务中,池化层(Pooling Layer)是卷积神经网络(CNN)的重要组成部分。它通过对局部区域进行下采样,减…...

零基础入门:收藏必备!从Agent概念到实战构建,小白也能掌握AI新趋势

本文系统梳理了AI Agent的核心概念、原理及构建模式,通过对比ReAct和Plan-and-Execute等主流模式,阐述了Agent如何从被动对话转向主动行动。文章详细介绍了构建Agent的思路和关键组件,如主程序、行为说明书和工具集,适合对AI Agen…...

OpenClaw调试技巧:百川2-13B模型任务执行过程的实时日志分析

OpenClaw调试技巧:百川2-13B模型任务执行过程的实时日志分析 1. 为什么需要关注OpenClaw的实时日志? 上周我在用OpenClaw自动处理一批Markdown文档时,遇到了一个奇怪的现象:任务执行到一半就卡住了,既没有报错也没有…...

R语言孟德尔随机化环境搭建:手把手教你搞定gwasvcf、gwasglue等包的安装报错(附本地安装包)

R语言孟德尔随机化环境搭建:从报错到成功的全流程指南 第一次在R中安装孟德尔随机化相关工具包时,那种挫败感我至今记忆犹新。明明按照教程一步步操作,却不断遭遇各种报错——网络超时、依赖缺失、API限制...这些看似简单的问题足以让一个生物…...

聊天记录全方位管理:WeChatMsg革新性本地数据解决方案

聊天记录全方位管理:WeChatMsg革新性本地数据解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...

OpenClaw 配置 scnet API 完整指南 - 被低估的国产大模型 API

OpenClaw 配置 scn# OpenClaw 配置 scnet API 完整指南 写在前面 如果你正在使用 OpenClaw,相信你已经对 AI Agent 有了深入的了解。但在模型选择上,很多人只知道 OpenAI、OpenRouter,却忽视了一个非常优秀的国产选择 —— scnet。 本文将…...

MATLAB实时绘图卡顿?优化串口通信与图形刷新的几个实用技巧

MATLAB实时绘图性能优化:突破串口通信与图形刷新的瓶颈 当你在实验室里盯着屏幕上跳动的数据曲线,却发现它像老式幻灯片一样一卡一顿时,那种挫败感简直让人抓狂。特别是在处理高速ADC采样或长时间运行的实验时,MATLAB默认的绘图方…...

【唠嗑第二嗑-代码里面的无为思想,空空如也的接口】

文章目录接口怎么是空的你当然知道为什么1.定义类型体系,而非行为契约2.为差异化行为预留空间3.真正的实现在子接口中为什么我会惊讶圣人不妄为最近拜读了老子的《道德经》。很多时候觉得读懂了,可转念一想又不是那么回事!不知道是老子他老人…...

应对复杂代码库学习难题:AI驱动的智能分析工具

应对复杂代码库学习难题:AI驱动的智能分析工具 【免费下载链接】Tutorial-Codebase-Knowledge Turns Codebase into Easy Tutorial with AI 项目地址: https://gitcode.com/gh_mirrors/tu/Tutorial-Codebase-Knowledge 在快速发展的技术环境中,开…...

突破大文件传输瓶颈:aliyunpan快传链接技术全解析

突破大文件传输瓶颈:aliyunpan快传链接技术全解析 【免费下载链接】aliyunpan 阿里云盘命令行客户端,支持JavaScript插件,支持同步备份功能。 项目地址: https://gitcode.com/GitHub_Trending/ali/aliyunpan 大文件传输的现实痛点&…...