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

【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

相关文章:

【Nginx】Nginx网站服务

国外主流还是使用apache;国内现在主流是nginx(并发能力强,相对稳定) nginx:高新能、轻量级的web服务软件 特点: 1.稳定性高(没apache稳); 2.系统资源消耗比较低&#xf…...

go语言从0基础到安全项目开发实战

一.环境搭建并helloworld 搭建环境比较简单 1.1安装SDK 到以下链接下 Go下载 - Go语言中文网 - Golang中文社区 下载windows版本64位zip包 https://studygolang.com/dl/golang/go1.20.7.windows-amd64.zip 1.2配置环境变量 不配置的话就只能在bin目录下才能运行go命令 …...

Kubernetes Service 工作原理

本文介绍了 Kubernetes Service 的概念、原理和具体使用。 作者:沈亚军 爱可生研发团队成员,负责公司 DMP 产品的后端开发,爱好太广,三天三夜都说不完,低调低调… 本文来源:原创投稿 爱可生开源社区出品&am…...

面部表情识别4:C++实现表情识别(含源码,可实时检测)

面部表情识别4:C实现表情识别(含源码,可实时检测) 目录 面部表情识别4:C实现表情识别(含源码,可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型(Python) (1) 面部表情识别模型的训练…...

提升Element UI分页查询用户体验与交互:实现修改未保存提示

我实现的功能是在 element ui 的分页组件中进行分页查询时,如果当前有未保存的修改数据就提示用户,用户可以选择是否放弃未保存的数据。确认放弃就重新查询数据;选择不放弃,不重新查询,并且显示条数选择框保持原样&…...

UML-时序图

目录 时序图 时序图构成: 对象: 消息: 生命线(激活): 活动条: 时序图举例: 时序图 时序图也叫顺序图、序列图. 时序图描述按照时间的先后顺序对象之间的动作过程,是由生命线和消息组成 时序图构成: 对象: 对象是类的实例,对象是通过类来创建的&…...

Seata - 入门笔记

1、事务 访问并可能更新数据库中数据库中各种数据线的一个程序执行单元 原子性:事务是一个不可分割的工作单位,一个事务要么都做要么都不做 一致性:必须是使数据库从一个一致性到另一个一致性的状态,中间状态不能被观察到 隔离…...

springboot使用aop排除某些方法,更新从另外一张表,从另外一张表批量插入

AOP 在Spring Boot中使用AOP时,如果想要排除某些方法不被切面所影响,可以通过使用切面表达式中的!within关键字来实现。以下是一个示例: Aspect Component public class MyAspect {Before("execution(* com.example.service.*.*(..)) …...

Go 语言面试题(二):实现原理

文章目录 Q1 init() 函数是什么时候执行的?Q2 Go 语言的局部变量分配在栈上还是堆上?Q3 2 个 interface 可以比较吗?Q4 两个 nil 可能不相等吗?Q5 简述 Go 语言GC(垃圾回收)的工作原理Q6 函数返回局部变量的指针是否安全&#xff…...

SAP MM学习笔记16-在库品目评价

在库品目评价是指评估物料。具体比如物料价格,数量,保管场所等发生变化的时候,判断是否发生了变化,要不要生成 FI票,用哪个FI科目来进行管理等内容就叫在库品目评价。 在库品目评价有很多层级,这里先讲3兄弟…...

Azure通过自动化账户实现对资源变更

Azure通过自动化账户实现对资源变更 创建一个自动化账户第一种方式 添加凭据(有更改资源权限的账户,没有auth认证情况)创建一个Runbook,测试修改 AnalysisServices 定价层设置定时任务:开始定时任务: 第二种…...

使用luarocks安装cjson并使用cjson

1.luarocks安装 wget https://luarocks.org/releases/luarocks-3.3.1.tar.gz --no-check-certificatels -lrthtar -xvf luarocks-3.3.1.tar.gz mv luarocks-3.3.1 /usr/local/cd /usr/local/luarocks-3.3.1/./configure --prefix/usr/local/luarocks-3.3.1 vim /etc/profilePAT…...

【已解决】mac端 sourceTree 解决remote: HTTP Basic: Access denied报错

又是在一次使用sourcetree拉取或者提交代码时候,遇到了sourcetree报错; 排查了一会,比如查看了SSH keys是否有问题、是否与sourcetree账户状态有问题等等,最终才发现并解决问题 原因: 因为之前公司要求企业gitlab中…...

javaee dom4j读取xml文件

引入jar包 dom4j-1.6.1.jar 创建xml文件 <?xml version"1.0" encoding"UTF-8"?> <books><book id"1"><title ID"t1">背影</title><price>88</price><author>三毛</author>…...

各类背包问题

1、0-1背包问题 &#xff08;1&#xff09;用二维数组动态规划 #include<bits/stdc.h> using namespace std; int m,n; int w[50],c[50]; int dp[210][210]; int main() {cin>>m>>n;for(int i1;i<n;i){cin>>w[i]>>c[i];}for(int i1;i<n;…...

《练习100》91~95

题目91 # 自动生成字符串 # a [小马,小羊,小鹿] # b [草地上,电影院,家里] # c [看电影,听音乐,吃晚饭] # 随机生成三个0~2的数字&#xff0c;若是1&#xff0c;0&#xff0c;2 &#xff0c;则输出&#xff1a; 小羊在草地上吃晚饭 import random a [小马,小羊,小鹿] b […...

3.6 Spring MVC文件上传

1. 文件上传到本地 实现方式 Spring MVC使用commons-fileupload实现文件上传&#xff0c;注意事项如下&#xff1a; l HTTP请求方法是POST。 l HTTP请求头的Content-Type是multipart/form-data。 SpringMVC配置 配置commons-fileupload插件的文件上传解析器CommonsMultip…...

# X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系

X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系 很多人对于他们是啥是傻傻分不清的&#xff0c;我做了个表格供大家参考。 摘抄&#xff1a; X11是X Window System Protocol, Version 11&#xff08;RFC1013&#xff09;&#xff0c;是X server和X client之间的通…...

rknn3588如何查看npu使用情况

cat /sys/kernel/debug/rknpu/load在Linux中&#xff0c;你可以使用一些工具和命令来绘制某一进程的实时内存折线图。一个常用的工具是gnuplot&#xff0c;它可以用来绘制各种图表&#xff0c;包括折线图。 首先&#xff0c;你需要收集进程的实时内存数据。你可以使用pidstat命…...

“Can‘t open perl script configure : No such file or directory”的解决办法

编译OpenSSL的时候执行到 perl configure 时提示找不到configure&#xff0c; 然后在网上搜了搜&#xff0c;大家给的解决办法一般都是说设置环境变量或者指定configure路径再执行&#xff1b;我试了都不行&#xff0c; 最后我把perl卸了重装就正常了&#xff1b; 然后我换了…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

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

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...