亚马逊官方网站怎么做/互联网营销的优势
nginx:高性能,轻量级的web服务软件。
特点:
1,稳定性高。(没有apache稳定)
2,系统资源消耗地较低。(处理http请求的并发能力非常高,单台物理服务器可以处理30000-50000个并发请求)
稳定:一般在企业中,为了保持服务器的稳定,并发量的设置在20000个左右。占用内存2M左右。
nginx主要功能:
1,静态文件服务:nginx可以直接提供静态文件的服务,HTML,CSS,JAVAScript,图片等。能够高效的处理并且响应静态文件的请求。
2,反向代理:可以作为一个反向代理的服务器,然后将客户端的请求转发给后端多个服务器,可以实现负载均衡,高可用。提高整个集群的性能以及可靠性
反向代理的核心:客户端在请求时,通过代理服务器,会把请求的流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用
3,处理动态内容,nginx处理动态内容很差,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命令:
-t:检查配置文件是否正确
-v:查看nginx的版本号
-s (stop,start):向主进程传输信号,停止,开启,重启,重新加载
-c:设置配置文件的默认路径
-V:当前nginx所有模块组
信号符:
信号符结合kill使用:只要是kill,只能跟pid号
kill-USR1 + nginx服务的pid号 :日志分割
kill -s HUP + nginx服务的pid号 :重新加载
kill -s HUP nginx :可以跟服务名,也可以用pid号
kill -s QUIT + nginx服务的pid号 :优雅推出,有人访问时不会就结束进程,访问结束才会结束进程。
kill -s WINCH + nginx服务的pid号 :优雅的结束worker,知道请求完成,才会结束worker的进程。
location模块当中:
root:拼接模式,root指定的目录和 location 之间做的一个拼接,/opt/ky30/ 这两个路径都是真实存在,而且都是目录,并且在uri目录里面要有web文件。
alias:匹配指定路径下的web文件
/ root后面有没有 / 无所谓,加不加都可以,alias加了 / ,后面也必须有 / ,否则匹配不到
root 标签可以使用重定向
alias 不可以设置重定向。
总结:
1,全局快,全局生效,所有模块,所有用户都生效。
2,events:一个像nginx服务器和用户的网络连接问题。
3,http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能是http的请求才可以写http模块中。
)1,upstream:反向代理指定服务器的命令,七层,基于ip和端口,走http协议,只能在http模块中。
4,serber块:包含在http模块中,不能单独设置。
5,location:匹配uri,包含在sever当中的,也不能单独设置。
)1,porxy_pass:反向代理
6,strean块:四层,·12345678走的是tcp或者udp流量,并不能卸载http当中,要写在全局配置中。
访问状态统计:
基于用户名和密码的访问控制
基于ip地址的访问规则
nginx的优化和防盗链
重点是优化:
1,隐藏版本号:
方法一:修改配置文件
在http模块中,加入一个命令:
server_tokens off;
方法二:在源码包里改
/opt/nginx-1.22.0/src/core/nginx.h #define NGINX_VERSION "1.1.1" #修改版本号 #define NGINX_VER "burun/" NGINX_VERSION
要配置好之后,重新编译安装
serve_tokens on
nginx的日志分割:
代码:
#!/bin/bash #获取日期 d=$(date +%Y-%m-%d) #定义存储目录 dir="/usr/local/nginx/logs"
#分割日志 logs_file="/usr/local/nginx/logs/access.log" logs_error='/usr/local/nginx/logs/error.log'
#定义nginx的pid文件 pid_file='/usr/local/nginx/run/nginx.pid'
if [ ! -d "$dir" ] then mkdir -p $dir fi
#移动日志并且重命名
mv $logs_file ${dir}/access_${d}.log
mv $logs_error ${dir}/error_${d}.log
#发送信号给nginx主程序,让他生成一个新的日志文件
kill -USR1 $(cat ${pid_file}) #cat /usr/local/nginx/run/nginx.pid
#日志文件清理的命令 find ${dir} -mtime +30 -exec rm -rf {} \;
nginx的页面压缩
作用:节约带宽,提升用户的访问速度
gzip on; #取消注释,开启gzip的压缩功能 gzip_min_length 1k; #最小压缩文件的大小 gzip_buffers 4 64k; #压缩缓冲区,大小为4个64K缓冲区,Nginx 会使用 4 个 64KB 大小的缓冲区来存储压缩后的数据。 gzip_http_version 1.1; #压缩版本,默认为1.1 gzip_comp_level 6; #压缩比率(压缩等级为1-9,6是中等等级,也是常用等级)Gzip 压缩级别的范围是 1 到 9, 其中 1 表示压缩速度最快,但压缩比最低,9 表示压缩速度最慢,但压缩比最高。默认值为 1。 gzip_vary on; #支持前端缓存服务器支持压缩页面 gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; #压缩的类型,哪些文档启用压缩功能
压缩的功能是自带的,可以不取消注释,但是需要添加压缩细节,需要把gzip打开后,进行配置
图片缓存:
连接超时:
http1.1,会有一个keepalive模式,告诉web服务器在处理玩一个请求之后把保持当前连接的tcp的状态为打开状态,如果当前连接有新的请求,服务端就会利用这个没有关闭的连接,继续给客户端响应,不需要在建立一个新的连接
keep alive在一段时间
nginx的并发配置:
在高并发的场景中,需要启动更多的nginx进程以保证响应速度。可以更快的处理用户的请求,避免阻塞
1,cpu的核心数来进行设置
2,/worker_cpu_affinity 设置work进程绑定到指定的cpu的命令。可以减少cpu切换带来的开销,确保worker进程在一个独立的cpu核心上运行。
TIME_WAIT:
不是一个报错信息,是tcp连接状态中的一种状态,出现在tcp连接的四次挥手中
fin=1
ack=1
当连接的乙方发送fin报文,而且收到了对方的ack保温之后,就会进入time_wait tcp处理等待的状态,是一个持续时间,65秒,确保网络中的所有数据包都被完全处理完毕。
两个作用:
1,确保可靠的关闭连接。如果立刻关闭连接,旧的数据包也会被处理,从而会干扰新的连接
2,避免连接服用,time_wait的时间太短了,可能会导致九的链接仍然在网络中,会被误认为是新的连接,导致连接复用。
而且在连接的生命周期,time_wait占用的资源是非常小的,而且对服务器整体的影响也很有限。
大量的短链接频繁创造和销毁,或者大并发连接时(负载均衡),time_wat连接会积累,服务器会出现大量的time_wait状态的链接,在这种状况下需要优化处理。
内核设置,进行优化。
查看系统的所有tcp连接的状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
closed 表示连接未活动或者关闭
listen 监听,等待连接
syn_recv :syn接受,服务端收到了来自客户端的syn(连接请求),正在等待确认
syn_sent :syn发送,客户端已经向服务器发送了syn请求,等待服务器确认
ESTABLELISHED:已经建立了tcp连接,正在传送数据
fin_wait1 :表示一端已经发送了连接关闭的请求,等待另一端确认
fin_wait2:表示一段已经关闭连接,但是应用程序还未关闭连接
close_wait:表示一段已经关闭连接,但是应用程序还欸关闭连接
closing:正在关闭
time_wait:连接等待
last_ack:表示应用程序已经发送了最后确认,等待另一端进入closed状态
valid_refers 设置信任网站, *.kgc.com kgc.com 都可以访问图片
none:允许没有http_refer的请求访问资源
www.kgj.com/ls.jpg
www.kgc.com也可以访问显示图片。
面试题:
nginx是如何实现高并发的?
1,nginx自身代码的问题,大量的底层代码进行了优化,同时自带了一个功能模块。epoll模块,自带的,支持高并发。‘
2,nginx也是一个master进程控制多个work进程。master负责收集和分发请求,work是实际的执行者。每一个请求进来时,mester就会拉起一个work进程来处理请求。同时master进程也负责监控work的状态,work的数量要和cpu的数量一致或者两倍。work处理请求只受内存大小的限制,所以可以处理多个请求,再加上nginx本身就是轻量级的服务,处理请求时占用的内存本身就少,所以可以实现大并发处理。
如何修改Linux服务器文件的最大打开数量?
ulimit -n 65535 零时修改 Linux只支持打开65535
vim /etc/security/limits.conf
*soft nproc 65535
*hard nproc 65535
*soft nofile 65535
*hard nofile 65535
底行输入,必须重启才能生效
相关文章:

第三章nginx详解
nginx:高性能,轻量级的web服务软件。 特点: 1,稳定性高。(没有apache稳定) 2,系统资源消耗地较低。(处理http请求的并发能力非常高,单台物理服务器可以处理30000-5000…...

【二叉树前沿篇】树
【二叉树前沿篇】树 1 树的概念2. 树的相关概念3. 树的表示4. 树在实际中的运用(表示文件系统的目录树结构) 1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是…...

python3 0基础学习----数据结构(基础+练习)
python 0基础学习笔记之数据结构 📚 几种常见数据结构列表 (List)1. 定义2. 实例:3. 列表中常用方法.append(要添加内容) 向列表末尾添加数据.extend(列表) 将可迭代对象逐个添加到列表中.insert(索引,插入内容) 向指定…...

计算机科学中的“旅行商问题”
题目:旅行商问题(Traveling Salesman Problem) 当初为何收藏:我收藏了这个题目是因为它是一个经典而富有挑战性的组合优化问题,涉及到计算机科学、算法设计和实际应用领域。我认为这个问题可以展示出算法设计的重要性…...

QT:自定义控件(Connect使用,子控件连接)
自定义控件封装: 1.添加新文件(设计师界面类),创建子页面 ,放自己想要的控件 2.在主页面中使用子控件 :新建一个widget-
目录——车载网络安全
本文主要汇总车载网络安全专栏文章,以方便各位读者阅读。 ISO21434 概述(一) ISO21434 组织网络安全管理(二) ISO21434 项目网络安全管理(三) ISO21434 分布式网络安全(四) SO21434 持续进行的网络安全(五) ISO21434 概念阶段网络安全(六)...

Visual Studio 如何放大代码字体的大小
1.打开Visual Studio,新建一个程序,一段代码,为接下去的操作做好准备。单击菜单栏的【工具】选项。 2.在跳出来菜单中找到【选项】(一般在最后一项),然后单击。跳出新的窗口。 3.跳出新的窗口后ÿ…...

Verilog同步FIFO设计
同步FIFO(synchronous)的写时钟和读时钟为同一个时钟,FIFO内部所有逻辑都是同步逻辑,常常用于交互数据缓冲。 异步FIFO:数据写入FIFO的时钟和数据读出FIFO的时钟是异步的(asynchronous) 典型同步FIFO有三部分组成: (1࿰…...

Php“牵手”lazada商品详情页数据采集方法,lazadaAPI接口申请指南
lazada详情接口 API 是开放平台提供的一种 API 接口,它可以帮助开发者获取商品的详细信息,包括商品的标题、描述、图片等信息。在电商平台的开发中,详情接口API是非常常用的 API,因此本文将详细介绍详情接口 API 的使用。 一、la…...

Sentinel 规则持久化
文章目录 Sentinel 规则持久化一、修改order-service服务1.引入依赖2.配置nacos地址 第二步修改非常麻烦,可以略过,直接使用已经打好包的来使用二、修改sentinel-dashboard源码1. 解压2. 修改nacos依赖3. 添加nacos支持4. 修改nacos地址5. 配置nacos数据…...

元宇宙时代超高清视音频技术白皮书关于流媒体协议和媒体传输解读
流媒体协议 元宇宙业务场景对流媒体传输的实时性和互动性提出了更高的要求,这就需要在传统的 RTMP、SRT、 HLS 等基础上增加实时互动的支持。实时互动,指在远程条件下沟通、协作,可随时随地接入、实时地传递虚实融合的多维信息,身…...

【计算机设计大赛】国赛一等奖项目分享——基于多端融合的化工安全生产监管可视化系统
文章目录 一、计算机设计大赛国赛一等奖二、项目背景三、项目简介四、系统架构五、系统功能结构六、项目特色(1)多端融合(2)数据可视化(3)计算机视觉(目标检测) 七、系统界面设计&am…...

深入理解【二叉树】
📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 👍…...

RequestRespons
文章目录 Request&Respons1 Request和Response的概述2 Request对象2.1 Request继承体系2.2 Request获取请求数据2.2.1 获取请求行数据2.2.2 获取请求头数据2.2.3 获取请求体数据2.2.4 获取请求参数的通用方式 2.3 IDEA快速创建Servlet2.4 请求参数中文乱码问题2.4.1 POST请…...

UniApp 使用命令创建页面的详细指南
系列文章目录 文章目录 系列文章目录前言一、安装Uni-CLI二、创建页面三、页面创建命令四、页面结构五、页面使用总结 前言 UniApp是一款跨平台的前端框架,可以用于开发同时运行在多个平台(如微信小程序、H5、App等)的应用程序。本文将详细介…...

Opencv 图像的读取与写入
目录 导入cv2 读取图像数据 创建一个窗口 waitKey方法 关闭所有窗口 完整示例 保存图片 示例 导入cv2 # 导入opencv包 import cv2 读取图像数据 cv2.imread(path, flag) 参数说明: path:要读取的图像文件的路径。 flag(可选&#…...

关于rinex3.x广播星历文件中时间系统的说明
文章目录 rinex广播星历文件介绍广播星历介绍rinex3.x多系统广播星历文件中的时间系统写在最后 rinex广播星历文件介绍 rinex星历文件是一种ascii字符文件,可以存放广播星历和精密星历,被广泛用于GNSS数据处理。 本文主要介绍广播星历文件。 对于rinex…...

Ansible 实战
Ansible 实战 1. httpd 角色 目录 rootubuntu1904:~#tree -f httpd/ httpd ├── httpd/default │ └── httpd/default/main.yml ├── httpd/files │ ├── httpd/files/httpd.conf │ └── httpd/files/index.html ├── httpd/handlers │ └── http…...

三、单元测试
三、单元测试 好的单元测试必须遵守 AIR 原则 A:Automatic(自动化)I:Independent(独立性)R:Repeatable(可重复) 单元测试应该是全自动执行的,并且非交互式的…...

“Spring管理JavaBean的过程及Bean的生命周期“
目录 引言1.弹簧容器2. Bean的生命周期2.1 配置javaBean2.2. 解析Bean的定义2.3 检查是否需要添加自己的功能2.4 初始化2.5 实现Aware接口2.6 扩展2.7. 销毁 3. 单例模式和原型模式3.1. 单例模式3.2. 原型模式 4. 总结 引言 Spring框架是一个非常流行的Java应用程序框架&#…...

@mouseover不起作用,并没有触发
我的错误代码如下: <el-rowv-for"version in item.version_list":key"version.id":class"{ blue-background: versionItem.id version.id }"mouseover.native"version.isHovered true"mouseleave.native"version…...

Vue 2 组件注册
组件名的命名规则 定义组件名的两种方式: 短横线分隔命名,Kebab Case,例如my-component-name。单词首字母大写命名,Pascal Case,例如MyComponentName。 第一种方式在模板中使用<my-component-name>引用该元素…...

学习游戏开发引擎,打造梦想中的虚拟世界!
游戏开发引擎是游戏开发过程中的关键工具,它们提供了开发者所需的各种功能和资源,加速了游戏的制作过程。以下是一些常用的游戏开发引擎以及它们的优势: Unity(Unity3D): 优势: Unity 是目前最…...

AI搜索引擎助力科学家创新
开发者希望通过帮助科学家从大量文献中发现联系从而解放科学家,让他们专注于发现和创新。 图片来源:The Project Twins 对于专注于历史的研究者Mushtaq Bilal来说,他在未来科技中投入了大量时间。 Bilal在丹麦南部大学( Universit…...

神经网络基础-神经网络补充概念-50-学习率衰减
概念 学习率衰减(Learning Rate Decay)是一种优化算法,在训练深度学习模型时逐渐减小学习率,以便在训练的后期更加稳定地收敛到最优解。学习率衰减可以帮助在训练初期更快地靠近最优解,而在接近最优解时减小学习率可以…...

android.system.ErrnoException: open failed: EPERM (Operation not permitted)
android 10(Q)开始增加了沙盒机制,不能直接把文件保存到/sdcard目录下,只能保存到APP专属目录下;AndroidManifest.xml在标签下增加属性【android:requestLegacyExternalStorage“true”】可以暂时保存到/sdcard路径下,但是Android…...

基于 KubeSphere 的应用容器化在智能网联汽车领域的实践
公司简介 某国家级智能网联汽车研究中心成立于 2018 年,是担当产业发展咨询与建议、共性技术研发中心、创新成果转化的国家级创新平台,旨在提高我国在智能网联汽车及相关产业在全球价值链中的地位。 目前着力建设基于大数据与云计算的智能汽车云端运营…...

面试之ReentrantLock
一,ReentrantLock 1.ReentrantLock是什么? ReentrantLock实现了Lock接口,是一个可重入且独占式的锁,和Synchronized关键字类似,不过ReentrantLock更灵活,更强大,增加了轮询、超时、中断、公平锁…...

系统学习Linux-MongoDB
概述 mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON 相关概念实例:系统上运行的mongodb的进程,类似于mysql实例;库:每个数…...

【带着学Pytorch】2、张量(Tensor)的介绍与创建
一、Tensor介绍 1.1、 张量是什么? 最开始在出现CPU和GPU, GPU出现主要解决的问题时并行计算,在此基础上的软件层面的工作基本上围绕着并行计算进行的,张量也不例外。 首先,我们先来聊聊 编程语言,python,java ,C,C++等,他们都有的共同特点是什么?在大学中计算机类…...