【Nginx】Nginx网站服务

国外主流还是使用apache;国内现在主流是nginx(并发能力强,相对稳定)
nginx:高新能、轻量级的web服务软件
特点:
1.稳定性高(没apache稳);
2.系统资源消耗比较低;处理http请求的并发能力非常高,单台物理服务器可以处理3-5万个并发请求
一般在企业中,为了保持服务器的稳定,并发量会设置在2万个左右;占用内存2M左右,keep-alive在3M左右

nginx的主要功能:

1.静态文件服务,nginx可以直接提供静态文件的服务,HTML,CSS,JavaScript,图片等,能够高效的处理并且响应静态文件的请求
2.反向代理:可以作为反向代理的服务器,将客户端的请求转发给后端多个服务器,可以实现负载均衡,高可用。提高整个集群的性能,以及可靠性
3.处理动态内容,nginx不能直接处理动态请求,需要依靠后端能够处理的应用php node.js java python nginx可以代理请求,发送到后端的动态服务处理,动态服务器处理完之后,nginx来吧动态请求,响应给客户端
4.SSL/TLS加密,HTTPS的加密方式,数字证书验证机制
5.虚拟主机,nginx可以在一台服务器上设置多个虚拟主机,同一个服务器上可以有多个域名和站点
6.URL重定向,可以实现灵活的url重写和重定向
7.缓存功能,nginx自带缓存功能;get可以获取缓存,post不能获取缓存
8.日志功能,可以详细的记录请求的信息,包括访问时间、请求路径IP地址、响应状态、有助于故障排查
系统控制的日志,记录在/var/log/messages 业务日志:access.log、error.logaccess.log	记录了访问成功的记录error.log		记录了访问失败的记录
正向代理:

***反向代理:

核心:客户端在请求时通过代理服务器,会把请求流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用

缓存

nginx的主要应用场景:

1.静态服务2.反向代理、负载均衡3.缓存服务4.动态服务
 ***nginx是如何实现高并发的?
1.  nginx自身代码的问题:大量的底层代理进行了优化,同时自带了一个功能模块——epoll模块,可以支持高并发
2.  nginx也是一个master进程控制多个work进程,master负责收集和分发请求,work是实际执行者;每一个请求进来时,master就会拉起一个work进程来处理请求同时,master进程也负责监控work的状态;worker的数量和cpu要一致或者是cpu的2倍worker处理请求的过程中,只收内存大小的限制,所以可以处理多个请求;再加上nginx本身就是轻量级的服务,处理请求时占用的内存本身很少,所以可以起到大并发处理的能力两者之间相互依赖,相互补充
conf    保存的是所有nginx的配置文件,其中最核心的就是nginx.conf
html    保存nginx的web文件,这个木里是默认的目录,可以改
50x.html    是nginx默认的错误页面的提示logs    保存日志文件的位置
sbin		nginx二进制的启动脚本,可以结合不同的参数来进行使用nginx -t	检查配置文件是否配置正确
nginx -v	查看nginx的版本号
nginx -s	向主进程传输信号,停止、开启、重启、重新加载
nginx -c	设置配置文件的默认路径nginx -s stop
nginx -s start
nginx -s reload

信号符:

信号符结合kill命令:
kill -USR1 pid号 		#日志分割
kill -s HUP pid号		#kill后只能跟pid号,重新加载
killall -s HUP nginx	#killall后可以跟服务名,也可以用pid号
kill -s QUIT pid号		#优雅退出,有人访问时不会结束进程,访问完后再结束进程
kill -s WINCH pid号		#优雅地结束worker,直到请求完成才会结束worker进程

必须要epel源(工作中一般不用yum安装)

yum install -y epel-release
yum install nginx -yworker_processes 1;		#工作进程,也就是worker进程的数量,一般是配置成cpu数一致,或者2倍;         一般来说小网站设置成1就足够了worker_connections	1024	#每个进程可以处理的最大连接数,默认为1024
***如何修改linux服务器文件的最大打开数量
ulimit -n 65535				#临时修改;65535为linux最大可打开数量
vim  /etc/security/limits.conf# 65535 为Linux系统最大打开文件数* soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535
#永久修改,需要重启linux才能生效ulimit -a

usr/local/nginx/conf/nginx.conf         #配置文件

event块

 http块

 server块可以配置虚拟主机的相关参数,一个http模块中可以有多个server块

 location块匹配的是URI(域名后面的地址)

 ***#location / 表示 /usr/local/nginx/html
    root		拼接;root指定的目录和location匹配的url之间做一个拼接,/opt/ky30/这两个路径都要真实存在,而且都是目录,并且在url目录里要有web文件alias		匹配指定路径下的web文件/root后面有没有 / 无所谓;alias加了 / ,后面也必须有 / ,否则匹配不到root标签可以使用重定向
alias标签不可以设置重定向

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

实验:

一、访问状态统计

1:

1:经过三次握手的

1:处理的请求数

二、基于用户名和密码的访问控制

三、基于IP地址的访问规则

四、虚拟主机,创建多个虚拟主机

基于一个服务器,创建多个主页

 nginx -t

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

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

相关文章

Windows电脑快速搭建FTP服务教程

FTP介绍 FTP(File Transfer Protocol)是一种用于在计算机网络上进行文件传输的标准协议。它提供了一种可靠的、基于客户端-服务器模型的方式来将文件从一个主机传输到另一个主机。在本文中,我将详细介绍FTP的工作原理、数据传输模式以及常见…

从Spring源码看Spring如何解决循环引用的问题

Spring如何解决循环引用的问题 关于循环引用,首先说一个结论: Spring能够解决的情况为:两个对象都是单实例、且通过set方法进行注入。 两个对象都是单实例,通过构造方法进行注入,Spring不能进行循环引用问题&#x…

分布式问题

1. 分布式系统CAP原理 CAP原理:指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitontolerance(分区容忍性),三者不可得兼。 一致性(C…

DVWA暴力破解高级模式宏爆破

先将安全等级调至高级,点击submit提交 浏览器开启bp代理 kali开启bp 工具,开启Proxy 点击Brute Force这个选项卡 bp拦截到请求的数据包 宏设置 如果是有的bp版本比较旧,在旧版本的上面菜单栏有一个Project options点击去选择Session&#xff…

智能优化算法:白鲨优化算法-附代码

智能优化算法:白鲨优化算法 文章目录 智能优化算法:白鲨优化算法1.白鲨优化算法1.1 初始化1.2 速度更新1.3位置更新1.4鱼群行为 2.实验结果3.参考文献4.Matlab5.python 摘要:WSO 算法是 Braik 等于 2022 年提出一种基于白鲨深海觅食策略的新型…

算法与数据结构(二十二)动态规划解题套路框架

动态规划解题套路框架 此文只在个人总结 labuladong 动态规划框架,仅限于学习交流,版权归原作者所有; 动态规划问题(Dynamic Programming)应该是很多读者头疼的,不过这类问题也是最具有技巧性&#xff0c…

计算机网络实验2:网络嗅探

文章目录 1. 主要教学内容2. Wireshark介绍3. Wireshark下载4. 使用Wireshark捕获包4.1 选择网卡4.2 停止抓包4.3 保存数据 5. Wireshark的过滤规则6. Wireshark实例 1. 主要教学内容 实验内容:安装、学习使用网络包分析工具Wireshark。所需学时:1。重难…

基于概率神经网络的变压器故障诊断

1.案例背景 1.1 PNN概述 概率神经网络(probabilistic neural networks. PNN)是 D.F.Specht博士在1989年首先提出的,是一种基于Bayes分类规则与Parzen窗的概率密度函数估计方法发展而来的并行算法。它是一类结构简单、训练简洁,应用广泛的人工神经网络。在实际应用中,尤其是在解…

纯鸿蒙!华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件

8月7日消息,近日,华为举行2023年华为开发者大会(HDC.Together)上,除了发布HarmonyOS 4、全新升级的鸿蒙开发套件外,华为还带来了HarmonyOS NEXT开发者预览版。 据了解,HarmonyOS NEXT开发者预览…

豪越HYDO智能运维助力智慧医院信息化建设

随着国家政策的推动与支持,医疗行业信息化应用不断普及,大数据、AI、医疗物联网等技术的应用,快速推动了电子病历、智慧服务、智慧管理的智慧医院建设和医院信息标准化建设,通过不断探索创新“智慧医院”服务模式,实现…

FLatten Transformer 简化版Transformer

今天在找论文时,看到一篇比较新奇的论文,在这里跟大家分享一下,希望可以给一些人提供一些思路。虽然现在Transformer 比较火,在分割上面也应用的比较多,但是我一直不喜欢用,其中一个原因是结构太复杂了&…

Linux平台下搭建GB28181服务器(WVP+ZLMediakit)

文章目录 什么是GB28181平台依赖项搭建步骤配置Redis和MySQL配置ZLMediakit配置WVP 使用效果封装成Docker镜像 什么是GB28181 GB28181(国标28181),全称为《中华人民共和国公共安全视频监控联网系统技术要求》,是中国国家标准委员会发布的一个针对公共安…

LeetCode面向运气之Javascript—第121题-买卖股票的最佳时机-97.77%

LeetCode第121题-买卖股票的最佳时机 题目要求 给定一个数组prices ,它的第i个元素prices[i]表示一支给定股票第i天的价格。 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回…

面试题:ArrayList扩容时扩容多少?

大家好,我是你们的小米!今天要和大家一起来探讨一个在Java面试中经常被问到的问题:“ArrayList扩容时扩容多少?”相信很多小伙伴都在面试中遇到过这个问题,那么接下来,我就为大家详细解析一下这个问题&…

OpenCV实例(八)车牌字符识别技术(三)汉字识别

车牌字符识别技术(三)汉字识别 1.代码实例2.遇到问题3.汉字识别代码实例 相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面: (1)字符笔画因切分误差导致非笔画或笔画流失。 (2…

【C++】开源:CGAL计算几何库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍CGAL计算几何库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,…

MachineLearningWu_16/P72-P77_Diagnostic

x.1 导数,计算图,大型网络 计算图就是根据链式法则求取偏导,大型网络就是多层网络堆叠而成。 x.2 Diagnostic 在我们对深度学习有了一些认知后,最重要的就是模型的诊断,以带有L1正则化的线性回归为例,我…

Vue中使用Tailwind css

1.什么是Tailwind 就是一个CSS框架,和你知道的bootstrap,element ui,Antd,bulma。一样。将一些css样式封装好,用来加速我们开发的一个工具。 Tailwind解释 tailwind css 中文文档 2.Vue使用Tailwind配置 1. 新建vu…

探索FSM (有限状态机)应用

有限状态机(FSM) 是计算机科学中的一种数学模型,可用于表示和控制系统的行为。它由一组状态以及定义在这些状态上的转换函数组成。FSM 被广泛用于计算机程序中的状态机制。 有限状态机(FSM)应用场景 在各种自动化系统…

【iOS】RunLoop

前言-什么是RunLoop? 什么是RunLoop? 跑圈?字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…