Nginx:网站服务

nginx:一个高性能、轻量级的web服务软件

1、稳定性高(没有apache稳)

2、系统资源消耗低(处理http请求的并发能力很高,单台物理服务器可以处理3万到5万个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量的设置在2万个左右,占用内存2M左右

nginx的主要功能:

1、静态文件服务:nginx可以直接提供静态文件的服务HTML,CSS,JAVA,Script,图片等,能够高效的处理并且响应静态文件的请求

2、反向代理:可以作为反向代理的服务器,将客户端的请求转发给后端多个服务器,可以实现负载均衡和高可用,可以提高整个集群的性能以及可靠性

正向代理:已知后端服务器,请求只会往固定的的服务器发送请求 反向代理的核心:客户端在请求时,沟通代理服务器,会把请求的流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用

3、处理动态内容,nginx处理动态内容很差,php node Java,nginx可以代理请求,发送到后端的动态服务处理,动态服务器处理完之后,nginx来把动态请求,响应给客户端

4、SSL/TLS加密,HTTPS的加密方式,数字证书验证机制

5、虚拟主机:nginx可以在一台服务器上设置多个虚拟主机,同一个服务器上可以有多个域名和站点

6、URL重定向,可以实现灵活的url重写和重定向

7、缓存功能,nginx自带缓存

8、日志功能,可以详细的记录请求的信息,包括访问的时间,请求路径IP地址,响应状态,有助于故障的排查(系统控制的日志,记录在/var/log/messages,业务日志:access.log error.log access记录的谁访问我了,都是访问成功的记录,error日志:也记录谁访问我了,但是记录的是访问失败的记录)

nginx的主要应用场景: 1、静态服务

2、反向代理,负载均衡

3、缓存服务

4、动态服务

面试题:nginx是如何实现高并发的? 1、nginx自身代码的问题:大量的底层代码进行了优化,同时自带了一个功能模块,epoll模块,支持高并发

2、nginx也是一个master进程控制多个work进程,master负责收集和分发请求,work是实际执行者,每一个请求进来时,master就会拉起一个work进程来处理请求,同时master进程也负责监控worker的状态,worker的数量和cpu要一直或者是cpu的2倍。worker处理请求的过程中,只受内存大小的限制,所以可以处理多个请求,再加上nginx本身就是轻量级的服务,处理请求时占用的内存本身就很少,所以可以起到大并发处理的能力 二者之间相互依赖,相互补充

信号符: 信号符结合kill命令:

kill-usr1pid号 #日志分割

kill -s HUP pid号 #只要是kill,只能跟pid号

kill -s QUIT pid号 #优雅退出,有人访问时不会结束进程,访问结束,才会结束进程

kill -s WINCH pid号 #优雅的结束worker,直到请求完成,才会结束worker进程

必须要epel源 yum install -y epel-release yum install nginx -y

修改linux服务器文件的最大打开数量 ulimit -n 65535 #最大打开数量 注意:设置保存后,需要重新ssh连接才会看到配置更改的变化 vim /etc/security/limits.conf

65535 为Linux系统最大打开文件数

  • soft nproc 65535

  • hard nproc 65535

  • soft nofile 65535

  • hard nofile 65535

  • soft nproc 65535: 最大进程数软限制为 65535,即可以使用 ulimit -u 命令查看和修改的值。

  • hard nproc 65535: 最大进程数硬限制为 65535,即最大可分配的进程数。

  • soft nofile 65535:最大打开文件数软限制为 65535,即可以使用 ulimit -n 命令查看和修改的值。

  • hard nofile 65535:最大打开文件数硬限制为 65535,即最大可分配的文件数。

这里使用的通配符 * 表示对所有用户生效。

 

全局块,全局生效,所有模块,所有用户都生效 events:影响nginx服务器和用户的网络连接问题 http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能时http的请求才可以写http模块中,upstream反向代理指定服务器的命令,在http模块中 serve块:包含在http模块中,不能单独设置 location块:匹配uri,包含在server当中的,也不能单独设置 porxy_pass反向代理 upstream:七层,基于IP和端口,走http协议,所以只能在http模块中 stream:四层,走的是tcp或者udp流量,不能写在HTTP当中,写在全局配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统架构设计专业技能 · 信息安全技术

系列文章目录 系统架构设计专业技能 网络技术(三) 系统架构设计专业技能 系统安全分析与设计(四)【系统架构设计师】 系统架构设计高级技能 软件架构设计(一)【系统架构设计师】 系统架构设计高级技能 …

<数据结构与算法>堆的应用二叉树的链式实现

目录 前言 一、堆的应用 1. 堆排序 1.1 排升序,建大堆 1.2 时间复杂度计算 2. Top k问题 二、 二叉树的链式实现 1. 二叉树的遍历 2. 二叉树基础OJ 2.2 100. 相同的树 总结 前言 学习完堆的数据结构,我们要清楚,它虽然实现了排序功能&am…

售后服务管理软件怎么选择?售后服务管理系统有什么用?

随着企业信息化发展,越来越多的企业纷纷选择售后服务管理软件来服务客户和进行内部人员管理。借助这款软件,企业能够高效地满足客户提出的需求,并提高客户对售后服务的满意度。售后服务通常涉及客户、客服、维修师傅和服务管理人员等各种角色…

用C++/JS/Python/Java代码描述秋天的味道

前言 秋天是一个充满诗意和浪漫的季节,它带来了清新、芬芳和美食的味道。让我们一起探索如何用编程语言来写出秋天味道的代码吧!无论是C、JavaScript、Python还是Java,以下是几个简单的步骤来帮助你创造出充满秋天味道的代码: …

Redis缓存问题(穿透, 击穿, 雪崩, 污染, 一致性)

目录 1.什么是Redis缓存问题? 2.缓存穿透 3.缓存击穿 4.缓存雪崩 5.缓存污染(或满了) 5.1 最大缓存设置多大 5.2 缓存淘汰策略 6.数据库和缓存一致性 6.1 4种相关模式 6.2 方案:队列重试机制 6.3 方案:异步更新缓…

[C++11]

文章目录 1. 自动类型推导1.1 auto1.1.1 推导规则1.1.2 auto的限制1.1.3 auto的应用1.1.4 范围for 1.2 decltype1.2.1 推导规则1.2.2 decltype的应用 1.3 返回类型后置 2.可调用对象包装器、绑定器2.1 可调用对象包装器2.1.1 基本用法2.1.2 作为回调函数使用 2.2 绑定器 3. usi…

idea创建javaweb项目,jboss下没有web application

看看下图这个地方有没有web application

C++_模板进阶_非类型模板参数_模板特化_分离编译

一、非类型模板参数 模板参数,分为类型形参和非类型形参。 类型形参就是在模板中跟在typename和class之后的参数类型名称,非类型形参就是用一个常量作为类模板或者函数模板的一个参数,在类模板和函数模板中,可以将该参数当作常量…

【JUC系列-01】深入理解JMM内存模型的底层实现原理

一,深入理解JMM内存模型 1,什么是可见性 在谈jmm的内存模型之前,先了解一下并发并发编程的三大特性,分别是:可见性,原子性,有序性。可见性指的就是当一个线程修改某个变量的值之后&#xff0c…

卷积神经网络全解:(AlexNet/VGG/ GoogLeNet/LeNet/ResNet/卷积/激活/池化/全连接)、现代卷积神经网络、经典卷积神经网络

CNN,卷积神经网络,Convolution Neural Network 卷积计算公式:N (W-F2p)/s1 这个公式每次都得看看,不能忘 1 经典网络 按照时间顺序 1.1 LeNet LeNet是 Yann LeCun在1998年提出,用于解决手…

Lua 数据结构

一、Lua 中的数据结构 Lua 中并没有像 java、kotlin 语言有专门的数组、列表、集合等数据结构的类,而只提供 table 类型,但他很强大而且也很灵活,而且也在很多场景中天然的就解决了如何对接和使用的问题(例如模块的引入&#xff…

MYSQL完全卸载、安装与账号创建、权限控制

一、卸载mysql CentOS 卸载 MySQL 1. 查看安装情况 使用以下命令查看当前安装mysql情况,查找以前是否装有mysql rpm -qa|grep -i mysql这里显示我安装的 MySQL 服务有有: 2. 停止 mysql 服务、删除之前安装的 mysql 删除命令:rpm -e –n…

C++笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用

C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用 参考博客:C笔记之各种sleep方法总结 code review! 文章目录 C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用1.条件变量&…

v8引擎编译全过程

环境vs2019 cmd 命令行需要设置成为代理模式 set http_proxyhttp://127.0.0.1:10809 set https_proxyhttp://127.0.0.1:10809 这个必须带上,不然报错,告诉编译器win系统的模式 set DEPOT_TOOLS_WIN_TOOLCHAIN0 源码 GitHub: GitHub - v8/v8: The…

Eclipse如何设置快捷键

在eclopse设置注释行和取消注释行 // 打开eclipse,依次打开:Window -> Preferences -> General -> Key,

solidwords(6)

从右视图开始,分上下两部分 标题 这里的薄壁要留意一下怎么算的(单向:默认向内;如果想向外记得选反向)

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(二)(IOC之属性填充/依赖注入)

目录 前言阅读准备阅读指引阅读建议 课程内容一、依赖注入方式(前置知识)1.1 手动注入1.2 自动注入1.2.1 XML的autowire自动注入1.2.1.1 byType:按照类型进行注入1.2.1.2 byName:按照名称进行注入1.2.1.3 constructor:…

idea 新建servlet 访问提示404 WebServlet注解找不到包 报错

检查访问路径是否设置正确 如果设置为name “/testServlet”,则会404 WebServlet注解报错找不到包 检查是否引入了tomcat依赖包

线性代数的学习和整理8: 方阵和行列式相关(草稿-----未完成)

1.4.1 方阵 矩阵里,行数列数的矩阵叫做方阵方阵有很多很好的特殊属性 1.4.2 行列式 行列式是方阵的一种特殊运算如果矩阵行数列数相等,那么这个矩阵是方阵。行列数的计算方式和矩阵的不同只有方阵才有行列式行列式其实是,矩阵变化的一个面…

超越函数界限:探索JavaScript函数的无限可能

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📚 前言 📘 1. 函数的基本概念 📟 1.1 函数的定义和调用 📟 1.2 …