Apache服务

目录

引言

一、常见的http服务程序

(一)lls

(二)nginx

(三)Apache

(四)Tomcat

二、Apache特点

三、Apache服务的安装

(一)yum安装及配置文件

1.配置文件

(二)编译安装

四、HTTP配置

(一)指定服务器名称

(二)监听端口

(三)包含其它子配置文件

(四)隐藏服务器版本信息

(五)持久连接

(六)DSO 

(七)MPM 多路处理模块

1.prefork模块

2.worker和event 模式相关的配置

(八)定义Main server的文档页面路径

(九)虚拟主机

1.基于IP地址

2.基于端口号

3.基于域名

(十)基于客户端 IP 地址实现访问控制

1.黑名单

2.白名单


引言

在互联网世界中,Web服务器扮演着至关重要的角色,它们是连接用户与网站内容的桥梁。其中,Apache HTTP Server(简称Apache)作为全球使用最为广泛的开源Web服务器软件之一,其影响力和普及度不容小觑。本文旨在带你走进Apache的世界,解析其核心功能,并探讨实际应用中的关键配置与优化实践。

一、常见的http服务程序

(一)lls

Windows 系统中默认 Web 服务程序是lIS(Internet Information Services),这是一款图形化的网站管理工具,IIS 程序不光能提供 Web 网站服务,还能够提供FTP、NMTP、SMTP 等服务功能,但只能在 Windows 系统中使用。

(二)nginx

nginx--最初于 2004年 10月4日为俄罗斯知名门户站点而开发的,作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而深受信赖,但最最最被认可的是低系统资源、占用内存少且并发能力强,目前国内如新浪、网易、腾讯等门户站均使用。

(三)Apache

Apache--取自美国印第安人土著语 Apache,寓意着拥有高超的作战策略和无穷的耐性,由于其跨平台和安全性广泛被认可且拥有快速、可靠、简单的 API扩展。目前拥有很高的 Web 服务软件市场占用率,全球使用最多的 Web服务软件,开源、跨平台(可运行于Unix,linux,windows 中)。
·支持基于IP或域名的虚拟主机
·支持多种方式的 HTTP 认证
·集成代理服务器模块
·安全 Socket层(SSL)
·能够实时见识服务状态与定制日志
·多种模块的支持

(四)Tomcat

Tomcat--属于轻量级的Web服务软件,一般用于开发和调试JSP 代码,通常认为Tomcat是 Apache 的扩展程序。

总结来说Nginx程序作为 Web 服务软件届的后起之秀已经通过自身的努力与优势赢得了大批站长的信赖,但是 Apache 程序作为老牌的 Web 服务软件因其卓越的稳定性与安全性成为了红帽 RHEL7 系统中默认的网站服务软件。

二、Apache特点

apache 功能:

提供http协议服务

多个虚拟主机:IP、Port、FQDN

CGI:Common Gateway Interface,通用网关接口,支持动态程序

反向代理

负载均衡

路径别名

丰富的用户认证机制:basic,digest

支持第三方模块

apache特性:

高度模块化:core + modules

DSO:Dynamic Shared Object 动态加载/卸载

MPM:multi-processing module 多路处理模块

MPM multi-processing module 工作模式

prefork:多进程I/O模型,每个进程响应一个请求,CentOS 7 httpd默认模型一个主进程:生成和回收n个子进程,创建套接字,不响应请求多个子进程:工作 work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求

Prefork MPM预派生模式,有一个主控制进程,然后生成多个子进程,每个子进程有一个独立的线程响应用户请求,相对比较占用内存,但是比较稳定,可以设置最大和最小进程数,是最古老的一种模式,也是最稳定的模式,适用于访问量不是很大的场景

优点:稳定

缺点:慢,占用资源,不适用于高并发场景

worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型

一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n

worker MPM是一种多进程和多线程混合的模型,有一个控制进程,启动多个子进程,每个子进程里面包含固定的线程,使用线程程来处理请求,当线程不够使用的时候会再启动一个新的子进程,然后在进程里面再启动线程处理请求,由于其使用了线程处理请求,因此可以承受更高的并发。

优点:相比prefork 占用的内存较少,可以同时处理更多的请求

缺点:使用keep-alive的长连接方式,某个线程会一直被占据,即使没有传输数据,也需要一直等待到超时才会被释放。如果过多的线程,被这样占据,也会导致在高并发场景下的无服务线程可用。(该问题在prefork模式下,同样会发生)

event:事件驱动模型(worker模型的变种),CentOS8 默认模型

一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n,有专门的监控线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力

event MPM是Apache中最新的模式,2012年发布的apache 2.4.X系列正式支持event 模型. 属于事件驱动模型(epoll),每个进程响应多个请求,在现在版本里的已经是稳定可用的模式。它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题(某些线程因为被keep-alive,空挂在哪里等待,中间几乎没有请求过来,甚至等到超时)。event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力event只在有数据发送的时候才开始建立连接,连接请求才会触发工作线程,即使用了TCP的一个选项,叫做延迟接受连接TCP_DEFER_ACCEPT,加了这个选项后,若客户端只进行TCP连接,不发送请求,则不会触发Accept操作,也就不会触发工作线程去干活,进行了简单的防攻击(TCP连接)

优点:单线程响应多请求,占据更少的内存,高并发下表现更优秀,会有一个专门的线程来管理keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放

缺点:没有线程安全控制

httpd-2.4:event 稳定版,centos7 以后默认

httpd-2.2:event 测试版,centos6 默认

我们在使用yum安装httpd的时候默认的是使用prefork工作模块

可以手动进行工作模式的切换

修改完毕之后,重启服务

可以看到,切换到event模式后,会开启很多线程,而prefork则没有线程

三、Apache服务的安装

(一)yum安装及配置文件

首先来讲解使用yum安装

yum  install  httpd  -y

Apache服务的安装包名称叫做httpd,下载时需要注意

1.配置文件

/etc/httpd/conf/httpd.conf 主配置文件

[root@localhost data]#grep  -i "^[a-z]"  /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd"
#指定了Apache服务器的根目录位置。
Listen 80
#指示Apache监听HTTP请求的端口号为80。
Include conf.modules.d./﹡.conf
#包含conf.modules.d目录下的所有.conf文件,这些通常用来加载和管理模块。
User apache 
Group apache
#定义了Apache服务器运行时使用的系统用户和组账号。
ServerAdmin root@localhost
#设置管理员邮箱地址,当服务器发生错误时,可能会通过此地址发送通知邮件。
DocumentRoot "/var/www/html"
#指定网站的根目录(web根目录),网页文件将从这里提供给访问者。
ErrorLog "logs/error_log"
#设置错误日志文件的位置。
LogLevel warn
#定义了记录到日志中的信息级别,这里是“warn”级别,即记录警告及更严重级别的消息。
AddDefaultCharset UTF-8
#设置默认字符集为UTF-8,用于处理未明确声明字符集的文档。
EnableSendfile on
#启用sendfile系统调用,可能提高静态文件传输性能。
IncludeOptional conf.d/﹡.conf
#包含conf.d目录下的所有.conf文件,这些通常包含额外的配置或特定站点的虚拟主机配置。

/etc/httpd/conf.d/*.conf 子配置文件

在/etcs/httpd/conf.d/目录下新建以.conf结尾的文件,都会读取生效,且优先级大于主配置文件

在下面的优化中会进行演示

/etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件

00-base.conf
#基础模块配置文件,可能包含了启动时默认加载的基本模块配置。
00-dav.conf
#与WebDAV(Web-based Distributed Authoring and Versioning)相关的模块配置,允许用户通过HTTP协议对服务器上的文件进行远程管理。
00-lua.conf
#与Lua脚本语言集成相关的模块配置,如mod_lua,用于在Apache服务器上运行Lua脚本。
00-mpm.conf
#Multi-Processing Module (MPM) 配置文件,定义了Apache如何处理并发连接和多线程/多进程模型。
00-proxy.conf
#代理模块配置,如mod_proxy,用于设置Apache作为反向代理或正向代理,转发来自客户端的请求到其他服务器。
00-systemd.conf
#Systemd系统和服务管理器相关的配置,确保Apache服务与Systemd兼容并正确集成。
01-cgi.conf
#Common Gateway Interface (CGI) 模块配置,允许Apache通过CGI接口执行外部脚本程序(如Perl、Python等)以生成动态内容。

检查命令及配置语法:httpd -t 

c在读取配置⽂件前,先执⾏选项中的指令
C在读取配置⽂件后,再执⾏选项中的指令
d<服务器根⽬录>指定服务器的根⽬录
D<设定⽂件参数>指定要传⼊配置⽂件的参数
f<设定⽂件>指定配置⽂件
h显示帮助
l显示服务器编译时所包含的模块
L显示httpd指令的说明
S显示配置⽂件中的设定
t测试配置⽂件的语法是否正确
v显示版本信息
V显示版本信息以及建⽴环境
X以单⼀程序的⽅式来启动服务器
M

显示动态模块

服务单元文件:

/usr/lib/systemd/system/httpd.service

配置文件:/etc/sysconfig/httpd

站点网页文档根目录:/var/www/html

在访问httpd服务时,访问的目录为/var/www/html下的文件

在配置文件中可以进行修改

DocumentRoot   "/path”

<directory /path>

Require all granted

</directory>

DocumentRoot指向的路径为URL路径的起始位置

/path 必须显式授权后才可以访问

这是因为在配置文件中制定了默认的文件名

比如在文件中条件其它自定义名称后,会按顺序进行查找

首先新建一个名为pla.test的文件

使用其它机器访问时就会默认匹配前面的文件名,将没有匹配到的默认文件名忽略

再建一个名为index.txt的文件

再进行访问时就会匹配最前面的自定义名称

模块文件路径:

/etc/httpd/modules

/usr/lib64/httpd/modules

一些模块配置,不需要去关注

(二)编译安装

编译安装可以指定工作模块,可以在官方文档中查看

下面提供几个下载地址,可以自己进行编译安装

https://downloads.apache.org/apr/apr-1.7.0.tar.bz2
https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2
https://downloads.apache.org//httpd/httpd-2.4.46.tar.bz2

四、HTTP配置

在修改配置文件之前养成好习惯,先进行备份

cp   conf/httpd.conf  conf/httpd.conf.bak

(一)指定服务器名称

之前在使用httpd -t检查配置文件时出现一条报错信息

可以将95行的注释信息开启,也可以自定义域名

再次进行检查就没有报错信息了,也就是指定域名

重新之后就会生效了

(二)监听端口

httpd默认的监听端口号是80 

可以在主配置文件中修改

再次访问的时候会拒绝,因为默认是80,而httpd服务不再监听80端口

可以同时监听多个端口,在设置时,省略IP地址,表示监听本机的所有IP地址

添加一块临时网卡:ifconfig ens33:0  192.168.83.111/24

访问htppd服务时,无论访问哪一个IP地址的9527端口都可以

但是在访问10086端口时,只能访问192.168.83.40的10086端口

(三)包含其它子配置文件

为什么在/etc/httpd/conf.d/下新建一个以.conf结尾的文件,就可以当作配置文件生效?

这是因为,在主配置文件中也规定了

Include 和 IncludeOptional 指令用于包含其他配置文件或目录下的所有匹配的配置文件。

Include和IncludeOptional功能相同,都可以包括其它配置文件

但是当无匹配文件时,include会报错,IncludeOptional将继续加载其余配置,不会导致错误

(四)隐藏服务器版本信息

在Apache HTTP Server中,可以通过配置文件隐藏服务器版本信息以增强安全性,防止攻击者利用已知的软件漏洞。

可以在配置文件中添加ServerTokens字段来设置显示的版本信息

ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full

选项显示信息
ServerTokens ProdServer: Apache
ServerTokens MajorServer: Apache/2
ServerTokens MinorServer: Apache/2.0
ServerTokens MinServer: Apache/2.0.41
ServerTokens OSServer: Apache/2.0.41 (Unix)
ServerTokens Full  Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.

ServerTokens Prod:只显示服务名称

ServerTokens Major显示主要版本号

ServerTokens Minor:显示主要和次要版本号

ServerTokens Min:显示最小化但仍然包含具体版本信息的标识

ServerTokens OS:显示服务器软件、主要和次要版本号以及操作系统信息

此为默认值

ServerTokens Full:显示完整的服务器标识,包括服务器软件、完整版本号、操作系统及可能存在的其他模块版本信息

(五)持久连接

Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认开启持久连接。虽然效果比较好,但是对并发访问量大的服务器,持久连接会使有些请求得不到响应。可以通过设置限制条件来主动断开连接。

断开条件:

时间限制:以秒为单位, 默认5s,httpd-2.4 支持毫秒级

请求数量: 请求数达到指定值,也会断开

在客户端使用telnet进行测试

(六)DSO 

DSO (Dynamic Shared Object):加载动态模块配置,不需重启即生效动态模块所在路径

查看静态编译的模块:httpd -l

查看静态编译及动态装载的模块:httpd -M

其模块存放位置在vim  /etc/httpd/conf.modules.d目录下

想要禁用哪个模块,直接打开文件进行注释就可以,前提是了解好模块的作用再决定是否注释或启用

(七)MPM 多路处理模块

httpd 支持三种MPM工作模式:prefork, worker, event

vim   /etc/httpd/conf.modules.d/00-mpm.conf

1.prefork模块

开启prefork模块

开启后重新启动服务:systemctl restart httpd

正常开启进程后,会开启五个子进程

注意:startservers与10之间只能有一个空格,否则会出现语法错误

重启服务后会发现,会同时开启10个子进程

StartServers 最初始开启进程数
MinSpareServers 空闲时最少预留
MaxSpareServers 空闲时最大预留
ServerLimit最多进程数,最大值 20000
MaxRequestWorkers最大的并发连接数,默认256
MaxConnectionsPerChild

子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个请求之后,子进程

将会被父进程终止,这时候子进程占用的内存就会释放(为0时永远不释放)

MaxRequestsPerChild从httpd.2.3.9开始被MaxConnectionsPerChild代替

2.worker和event 模式相关的配置

ServerLimit

 这个指令限制了服务器可以同时运行的子进程总数。默认情况下,它会设置为与

MaxRequestWorkers相同的值,但在某些情况下,用户可能需要增加此值以支持

更多的并发连接。注意:修改这个值通常需要重新编译Apache

processes

 在Apache文档中并没有直接对应的processes配置项。但StartServers与此有关,

表示启动时创建的工作进程数量。

StartServers

 在worker或event模式下,StartServers指定了Apache启动时应启动多少个工作进程

。每个工作进程内包含多个线程来处理请求。

MaxRequestWorkers

这个参数定义了Apache可以同时处理的最大请求数量,即最多能有多少个客户端请

求被并行服务。这包括所有正在处理和等待处理的请求总数。

simultaneously

 这不是一个Apache配置选项,但确实描述了MaxRequestWorkers的作用,即允许

Apache同时处理的请求数量。

MinSpareThreads

 指定在任何时刻系统至少要保持的空闲线程数。如果当前的空闲线程数低于这个值,

Apache将会创建新的线程。

MaxSpareThreads

 定义了在任何时刻系统最多可以存在的空闲线程数。当达到这个数值时,Apache将

停止创建新的线程,即使有更多空闲。

ThreadsPerChild

 在worker或event模式下,每个工作进程中包含的线程数。这意味着每个工作进程能

够并行处理多个请求。

重启服务后,查看进程数量

(八)定义Main server的文档页面路径

在上面的配置文件中,已经讲解过文档页面路径以及重新定义的方法,下面说一说别名的定义

注释

因为只是做别名,并不需要重新指明文档默认路径,所以不需要在开头行加DocumentRoot而指向的路径为URL路径的起始位置

准备完毕后重启服务:systemctl restart httpd

使用客户机访问test时就相当于访问/data/http/

(九)虚拟主机

httpd 支持在一台物理主机上实现多个网站,即多虚拟主机

虚拟主机:在一台服务器中分出一定的磁盘空间供用户放置网站、存放数据等,仅提供基础的网站访问、数据存放与传输流量功能,能够极大的降低用户费用,也几乎不需要管理员维护除网站数据以外的服务,适合小型网站。

1.基于IP地址

首先,添加一个临时IP,也可以之间添加网卡

将/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf模板文件中的大约23-38行复制到/etc/httpd/conf.d/目录下新建一个以.conf结尾的子配置文件当中

新建一个子配置文件

vim  /etc/httpd/conf.d/vhost.conf

<Directory "/data/http">AllowOverride None# Allow open access:Require all granted
</Directory>
#对/data/http目录进行授权<VirtualHost 192.168.83.40>   #定义了这个虚拟主机监听的IP地址ServerAdmin root@localhost 
#设置服务器管理员邮箱地址,当发生错误时,可能会向这个邮箱发送通知DocumentRoot "/data/http/nice" 
#指定网站根目录的位置。访问者通过域名访问时,网页资源将从此路径提供ServerName www.kysw.com
#设置虚拟主机的域名,任何指向www.accp.com的HTTP请求都将匹配到这个虚拟主机配置ErrorLog "/data/http/nice/nice-error_log"
#配置错误日志文件的位置,所有与该虚拟主机相关的错误信息将被记录在这个文件中CustomLog "/data/http/nice/nice-access_log" common
#设置访问日志文件位置,客户端对网站的所有访问请求都会按common格式记录在此日志文件内。
</VirtualHost><VirtualHost 192.168.83.200>ServerAdmin root@localhostDocumentRoot "/data/http/good"ServerName www.kysw.comErrorLog "/data/http/good/good-error_log"CustomLog "/data/http/good/good-access_log" common
</VirtualHost>

重启服务后进行测试:systemctl restart httpd

使用客户端进行测试

2.基于端口号

不需要添加网卡,只需要在IP地址后面添加不同的端口号即可

重启服务后进行测试:systemctl restart httpd

3.基于域名

将不同的路径的servername换成自定的不同的域名

重启服务后进行测试:systemctl restart httpd

在客户端/etc/hosts文件中添加域名解析,将服务端的IP地址与自定义的不同的域名添加进去,通过不同的域名,获取不同的信息

(十)基于客户端 IP 地址实现访问控制

1.黑名单

黑名单,不能有失效,至少有一个成功匹配才成功,即失败优先

在新建的子配置文件中添加以下内容

#这段配置内容描述了对/opt目录及其资源的访问控制规则,并设置了一个别名指向 /test
<directory /opt>    #定义一个虚拟目录,这里的路径是服务器上的实际物理路径/opt
<RequireAll>        #在此标签内定义的所有条件都必须满足时,用户才能被允许访问该目录
require all granted  #表示允许所有用户访问/opt目录下的资源。
require not ip 192.168.83.100 #拒绝192.168.83.100这个IP地址访问
</RequireAll>   #结束<RequireAll>标签块
</directory>    #结束<directory /opt>标签块。
alias /test /opt/html    #别名

在/opt下建立html目录。并在目录下添加一个index.html文件输入内容

拒绝的IP地址十无法访问的

其它地址都可以访问

2.白名单

白名单,多个语句有一个成功,则成功,即成功优先

将子配置文件中的黑名单信息替换为以下内容

#这段配置内容描述了对/opt目录及其资源的访问控制规则,并设置了一个别名指向 /test
<directory /opt>    #定义一个虚拟目录,这里的路径是服务器上的实际物理路径/opt
<RequireAny>        #在此标签内定义的所有条件都必须满足时,用户才能被允许访问该目录
require all denied #表示拒绝所有用户访问/opt目录下的资源。
require ip 192.168.83.100 #允许192.168.83.100这个IP地址访问
</RequireAny>   #结束<RequireAny>标签块
</directory>    #结束<directory /opt>标签块。
alias /test /opt/html    #别名

所有IP地址都拒绝访问,只有白名单的IP地址可以访问

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

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

相关文章

#11vue3中使用el-dialog展示与关闭交由父组件控制的写法

目录 1、法一&#xff1a;通过defineEmits调用父组件方法 1.1、父组件 1.2、子组件&#xff08;CONTENT&#xff09; 2、法二&#xff1a;通过difineExpose暴露子组件属性 2.1、父组件 2.2、子组件&#xff08;Child&#xff09; 1、法一&#xff1a;通过defineEmits调用…

WordPress后台自定义登录和管理页面插件Admin Customizer

WordPress默认的后台登录页面和管理员&#xff0c;很多站长都想去掉或修改一些自己不喜欢的功能&#xff0c;比如登录页和管理页的主题样式、后台左侧菜单栏的某些菜单、仪表盘的一些功能、后台页眉页脚某些小细节等等。这里boke112百科推荐这款可以让我们轻松自定义后台登录页…

【Git】:标签功能

标签功能 一.标签操作二.推送远程标签 标签 tag &#xff0c;可以简单的理解为是对某次commit的⼀个标识&#xff0c;相当于起了⼀个别名。例如&#xff0c;在项⽬发布某个版本的时候&#xff0c;针对最后⼀次commit起⼀个v1.0这样的标签来标识⾥程碑的意义。这有什么⽤呢&…

计算机网络基础之计算机网络组成与分类

计算机网络基础 计算机网络是计算机技术与通信技术发展相结合的产物&#xff0c;并在用户需求的促进下得到进一步的发展。通信技术为计算机之间的数据传输和交换提供了必需的手段&#xff0c;而计算机技术又渗透到了通信领域&#xff0c;提高了通信网络的性能。 计算机网络的…

mysql 自定义函数create function

方便后续查询&#xff0c;做以下记录&#xff1b; 自定义函数是一种与存储过程十分相似的过程式数据库对象&#xff0c; 它与存储过程一样&#xff0c;都是由 SQL 语句和过程式语句组成的代码片段&#xff0c;并且可以被应用程序和其他 SQL 语句调用。 自定义函数与存储过程之间…

10.Halcon形态学膨胀,腐蚀,开运算,闭运算

膨胀:对边界点进行扩充,填充空洞&#xff0c;使边界向外部扩张的过程。 腐蚀:消除物体边界点,使边界向内部收缩的过程,把小于结构元素的物体去除掉. 开运算: 先腐蚀后膨胀的过程称为开运算。 作用 : 去除孤立的小点,毛刺,消除小物体,平滑较大物体边界,同时不改变其面积. 闭运…

【Spring】Spring MVC

目 录 一.什么是 Spring MVC&#xff1f;1.MVC 定义2.MVC 和 Spring MVC 的关系 二.为什么要学 Spring MVC&#xff1f;三.怎么学 Spring MVC&#xff1f;1.Spring MVC 创建和连接综上连接方式&#xff1a; 2.获取参数1.传递单个参数2.获取多个参数3.获取对象4.获取表单参数5.接…

Day17_集合与数据结构(链表,栈和队列,Map,Collections工具类,二叉树,哈希表)

文章目录 Day17 集合与数据结构学习目标1 数据结构2 动态数组2.1 动态数组的特点2.2 自定义动态数组2.3 ArrayList与Vector的区别&#xff1f;2.4 ArrayList部分源码分析1、JDK1.6构造器2、JDK1.7构造器3、JDK1.8构造器4、添加与扩容5、删除元素6、get/set元素7、查询元素8、迭…

论文学习 BioNeRF: Biologically Plausible Neural Radiance Fields for View Synthesis

论文学习 BioNeRF: Biologically Plausible Neural Radiance Fields for View Synthesis 前言简介NeRF介绍BioNeRF位置编码提取感知过滤记忆更新纹理推断损失函数 量化验证总结 前言 虽然我不应该再看NeRF相关的东西了&#xff0c;但是我还是觉得这个论文的题目很有意思&#…

ChatGPT 是什么

文章目录 一、ChatGPT 是什么二、ChatGPT的发明者三、ChatGPT的运作方式四、ChatGPT的技术五、ChatGPT的优势六、ChatGPT的局限性七、ChatGPT的应用八、ChatGPT的未来九、总结 一、ChatGPT 是什么 OpenAI的ChatGPT&#xff0c;即Chat Generative Pre-Trained Transformer&…

Sora来袭,蹭一波AI热潮|GPT · 重点梳理 -- 什么是ChatGPT,能干嘛,怎么用?

课程安排 学习内容 第一章 2024年AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-4 第二章 OpenAI开发者大会后GPT最新技术 1.最新大模型GPT-4 Turbo详细介绍…

(done) 什么是特征值和特征向量?如何求特征值的特征向量 ?如何判断一个矩阵能否相似对角化?

什么是齐次方程&#xff1f; https://blog.csdn.net/shimly123456/article/details/136198159 行列式和是否有解的关系&#xff1f; https://blog.csdn.net/shimly123456/article/details/136198215 特征值和特征向量 参考视频&#xff1a;https://www.bilibili.com/video/BV…

HTML5新婚、年会、各种聚会的现场抽奖活动(附源码)

文章目录 1.抽奖平台设计来源1.1 主界面效果1.2 抽奖效果1.3 中奖效果 2.效果和源码配置2.1 动态效果2.2 人员信息配置2.3 奖品信息配置2.4 抽奖音效配置2.5 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/deta…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理(中)

↑↑↑↑接上一篇继续部署↑↑↑↑ 目录 一、k8s集群的三种接口 二、k8s的三种网络模式 1、pod内容器之间的通信 2、同一个node节点中pod之间通信 3、不同的node节点的pod之间通信 Overlay Network VXLAN 三、flannel网络插件 1、flannel插件模式之UDP模式&#xff0…

Linux网络编程套接字

目录 前言 一、预备知识 1.1 源IP地址和目的IP地址 1.2 区分端口号和进程ID 1.3 TCP协议和UDP协议 1.4 网络字节序 二、socket编程接口 2.1 socket套接字的概念 2.2 socket常见API 2.3 sockaddr结构 三、关于IP和Port的绑定问题 四、编写简单的UDP服务端和客户端 前…

基于Python网络爬虫的IT招聘就业岗位可视化分析推荐系统(完整系统源码+数据库+详细文档)

文章目录 基于Python网络爬虫的IT招聘就业岗位可视化分析推荐系统&#xff08;完整系统源码数据库详细文档&#xff09;源码获取在文章末尾项目概述招聘岗位数据爬虫分析系统展示用户注册登录系统首页IT招聘数据开发岗-javaIT招聘数据开发岗-PythonIT招聘数据开发岗-Android算法…

通过Jmeter压测存储过程

一、存储过程准备&#xff1a; 1、建立一个空表&#xff1a; CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程&#xff1a; CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN--EXECUTE IMMEDIATE truncat…

如何高效率完成软件开发?试试低代码

一、前言 对于一个非技术出身的软件行业从业者而言&#xff0c;理解技术是一道坎&#xff0c;但也是向上发展所必须跨越的一道坎。在一个软件公司&#xff0c;无论是商务、售前还是项目经理亦或者是产品经理&#xff0c;对技术的理解程度&#xff0c;往往意味着他的专业程度。而…

开发Chrome插件,background.js中log打印未出现在控制台

不同于内容脚本&#xff08;通常命名content.js&#xff09;&#xff0c;在后台脚本&#xff08;通常命名background.js或service-worker.js&#xff09;中console.log并不会在控制台中直接显示。 要查看后台脚本上下文的正确控制台&#xff0c;执行如下步骤&#xff1a; 访问…

Facebook Horizon:探索虚拟现实中的社交空间

随着科技的不断进步&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正成为社交互动和娱乐体验的新前沿。在这个数字时代&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;正在引领虚拟社交的新时代&#xff0c;其推出的虚拟社交平台Facebook Horizon成为了…