nginx介绍及搭建
架构模型
Nginx是由一个master管理进程、多个worker进程组成的多进程模型。master负责管理worker进程,worker进程负责处理网络事件,整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。
优势:
1、充分利用多核,增强并发处理能力;
2、多worker间可以实现负载均衡;
3、Master统管worker行为:在worker异常后,可以主动拉起worker进程,从而提升了系统的可靠性。并且由Master进程控制服务运行中的程序升级、配置项修改等操作,从而增强了整体的动态可扩展与热更的能力;
安装
yum方式
yum install -y nginx
#查看是否安装成功
pcre-config --version
systemctl start nginx && systemctl enable nginx
#检查服务
ps -ef | grep nginx
netstat -ntlp | grep 80
#检查配置文件
nginx -t
systemctl restart nginx
systemctl start nginx
systemctl stop nginx
编译方式
wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz/下载路径/configure --prefix=/安装路径#下载依赖
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
make && make install
# 启动服务
/安装路径/sbin/nginx
#重新加载
./nginx -s reload
#服务关闭
./nginx -s stop
#服务开启
./nginx
基本配置
主配置文件/etc/nginx/nginx.conf;如果是openresty,则在/usr/local/openresty/nginx/conf/nginx.conf。
# worker进程的数量,建议数量<=服务器的总核心数
worker_processes 4;
events {
# 单个worker进程并发最大连接数;
# nginx并发总链接数 = worker_processes * worker_connections,建议数量<=文件打开数worker_connections 256;
}
http {
# include为http模块调取的配置文件
# mime.types文件是nginx可处理的静态媒体资源类型include mime.types;
# 定义默认类型,普通文本为text/plaindefault_type application/octet-stream;
# 是否能使用sendfile()传输文件,该属性可以大大提高Nginx处理静态资源的性能sendfile on;
# 链接超时时间keepalive_timeout 65;server {
# nginx服务监听端口,默认为80listen 80;
# 指定网址域名信息,例:www.abc.com;默认为主机地址,通过输入主机地址访问页面server_name localhost;
# url为/时location / {
# 指定网址站点目录root html;
# 访问主页后,无对应站点时,反馈的信息,默认打开此配置文件index index.html index.htm;}
# 错误页面,优雅显示配置模块error_page 500 502 503 504 /50x.html; location = /50x.html {root html;}}
}
常用项
反向代理
客户端发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端。此过程客户端无法感知代理,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
location / {echo "this is 100 / page";}location /a {proxy_pass http://10.0.0.101:80/;}location /b {proxy_pass http://10.0.0.102:80/;}# proxy_pass为反向代理配置, 即流量由代理端转发至后端响应。注意结尾的/号,如果不配置会代表其他用法。
匹配规则
=:优先级最高;
^~:优先级其次,匹配以xx开头;
~ ^/\w: 优先级第三,匹配字母、数字、下划线或汉字(正则表达式)
/:优先级最低;
server {listen 80;server_name localhost;# 需要在server配置模块中添加配置, 否则默认会下载default_type text/html;location / {echo "this is / page";}location = /a {echo "this is = /a page";}location ^~ /a {echo "this is ^~ /a page";}location ~ ^/\w {echo "this is ~ ^/\w page";}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
动静分离
nginx对静态页面的处理能力远高于tomcat,非常擅长将css、js、图片等资源以http协议的方式返回给客户端。故静态请求交由nginx,动态请求交由tomcat,提升系统吞吐量,,降低由单个服务器的压力。
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
# 静态数据放入客户端的缓存,七天内有效root /webapps/projectname/code/static-resource;expires 7d;}location / {
# 动态请求转交tomcatproxy_pass http://127.0.0.1:8080;
}
负载均衡
http:upstream group {server 10.0.0.101:80;server 10.0.0.102:80;}server:location /lb {proxy_pass http://group/;}
调度种类
轮询:每个请求按时间顺序逐一分配到不同的后端服务器;
权重:weight值越大,被访问的概率越高;
ip hash:每个请求按访问ip的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题;
fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配;
url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效;
几种状态
down:当前的后端server不参与负载;
weight:默认为1, 被访问的概率;
max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream模块定义的错误 ;
fail_timeout:失败访问达到max_fails次数后,暂挂的时间。;
backup: 所有非backup后端server处于宕机或者忙的时候,转发请求到backup后端server;
附
nginx的主备: link
相关文章:

nginx介绍及搭建
架构模型 Nginx是由一个master管理进程、多个worker进程组成的多进程模型。master负责管理worker进程,worker进程负责处理网络事件,整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。 优势: 1、充分利用多核,增强并发处理…...

树莓派夜视摄像头拍摄红外LED灯
NoIR相机是一种特殊类型的红外摄像头,其名称来源于"No Infrared"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。 一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了…...

Oracle19C静默安装教程
文章目录 一、安装前的准备1、安装Linux操作系统2、配置网络源或者本地源3、hosts文件配置 二、准备安装环境1、安装依赖包2、创建oracle用户组3、配置系统内核参数4、关闭selinux5、配置oracle用户环境6、修改用户的Shell限制 三、静默安装Oracle数据库1、创建oracle安装目录2…...

【机器学习】基于粒子群算法优化的BP神经网络分类预测(PSO-BP)
目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】粒子群算法(PSO)原理及实现 2.设计与实现 数据集: 多输入多输出:样本特征24,标签类别4…...

Sora后时代文生视频的探索
一、写在前面 按常理,这里应该长篇大论地介绍一下Sora发布对各行业各方面产生的影响。不过,这类文章已经很多了,我们今天主要聊聊那些已经成熟的解决方案、那些已经可以“信手拈来”的成果,并以此为基础,看看Sora发布…...
指南:在各主流操作系统上安装与配置Apache Tomcat
指南:在各主流操作系统上安装与配置Apache Tomcat Apache Tomcat作为一款广受欢迎的开源Java Servlet容器,为用户提供了一个纯Java环境下的Web服务器和Servlet容器。本文将详细介绍如何在不同的操作系统上安装Apache Tomcat,并进行基本的配置…...
物联网的介绍
物联网(Internet of Things,简称IoT)是指通过互联网将物理设备、传感器、通信设备和软件系统相互连接,形成一个网络化的系统。它可以实现设备之间的数据交换、信息共享和远程控制,使得物理世界与数字世界紧密结合。 物…...

目标检测——YOLOR算法解读
论文:YOLOR-You Only Learn One Representation: Unifified Network for Multiple Tasks 作者:Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao 链接:https://arxiv.org/abs/2105.04206 代码:https://github.com/WongKinYiu/yolo…...

NVIDIA NCCL 源码学习(十三)- IB SHARP
背景 之前我们看到了基于ring和tree的两种allreduce算法,对于ring allreduce,一块数据在reduce scatter阶段需要经过所有的rank,allgather阶段又需要经过所有rank;对于tree allreduce,一块数据数据在reduce阶段要上行…...

Spark-Scala语言实战(4)
在之前的文章中,我们学习了如何在scala中定义无参,带参以及匿名函数。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scala语言…...
ffmpeg不常用命令整理
最近做了许多有关音视频方面的工作,接触了一些不常用的命令,整理分享出来。 1.剪辑视频 ffmpeg -ss 1 -to 4 -accurate_seek -i input.mp4 -c:v copy output.mp4指定从视频中的第1秒开始,到第4秒结束的部分剪辑。 ss:指定开始时…...

怎么理解面向对象?一文带你全面理解
文章目录 1、类和对象(1)面向过程和面向对象初步认识(2)类的引入(3)类的定义(4)类的访问限定符及封装4.1 访问限定符4.2 封装 (5)类的作用域(6&am…...

神经网络(深度学习,计算机视觉,得分函数,损失函数,前向传播,反向传播,激活函数)
目录 一、神经网络简介 二、深度学习要解决的问题 三、深度学习的应用 四、计算机视觉 五、计算机视觉面临的挑战 六、得分函数 七、损失函数 八、前向传播 九、反向传播 十、神经元的个数对结果的影响 十一、正则化与激活函数 一、神经网络简介 神经网络是一种有监督…...
Tomcat的Host Manager页面403的原因和解决办法
目录 背景 原因: 解决方案 背景 一直报错 403 Access Denied You are not authorized to view this page.By default the Host Manager is only accessible from a browser running on the same machine as Tomcat. If you wish to modify this restriction, youll need to…...
零基础学华为ip认证难吗?华为认证费用多少?
零基础学华为ip认证难吗? 首先,零基础的学习者可以通过系统的学习,逐步掌握网络基础知识和技能。可以通过阅读教材、参加培训课程、进行实践操作等方式,不断提升自己的知识和技能水平。同时,学习者还可以利用华为提供的…...

[C语言]——内存函数
目录 一.memcpy使用和模拟实现(内存拷贝) 二.memmove 使用和模拟实现 三.memset 函数的使用(内存设置) 四.memcmp 函数的使用 C语言中规定: memcpy拷贝的就是不重叠的内存memmove拷贝的就是重叠的内存但是在VS202…...

QGIS编译(跨平台编译)056:PDAL编译(Windows、Linux、MacOS环境下编译)
点击查看专栏目录 文章目录 1、PDAL介绍2、PDAL下载3、Windows下编译4、linux下编译5、MacOS下编译1、PDAL介绍 PDAL(Point Data Abstraction Library)是一个开源的地理空间数据处理库,它专注于点云数据的获取、处理和分析。PDAL 提供了丰富的工具和库,用于处理激光扫描仪、…...

计算机三级——网络技术(综合题第二题)
路由器工作模式 用户模式 当通过Console或Telnet方式登录到路由器时,只要输入的密码正确,路由器就直接进入了用户模式。在该模式下,系统提示符为一个尖括号(>)。如果用户以前为路由器输入过名称,则该名称将会显示在尖指号的前…...

Python 深度学习第二版(GPT 重译)(二)
四、入门神经网络:分类和回归 本章涵盖 您的第一个真实世界机器学习工作流示例 处理矢量数据上的分类问题 处理矢量数据上的连续回归问题 本章旨在帮助您开始使用神经网络解决实际问题。您将巩固从第二章和第三章中获得的知识,并将所学应用于三个新…...

【Redis】Redis常见原理和数据结构
Redis 什么是redis redis是一款基于内存的k-v数据结构的非关系型数据库,读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 redis的数据类型 string:字符串 缓存对象,分布式ID,token,se…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...