web平台—apache

news2024/11/19 6:15:41

web平台—apache

      • 1. 学apache前需要知道的知识点
      • 2. apache详解
        • 2.1 概述
        • 2.2 工作模式
        • 2.3 启动apache网站整体流程
        • 2.4 相关文件保存位置
        • 2.5 配置文件详解
      • 3. apache配置实验
        • 实验1:设置apache的目录别名
        • 实验2:apache的用户认证
        • 实验3:虚拟主机 (重点)
        • 实验4:域名跳转(重点)
        • 实验5:apache+openssl实现https(重点)
        • 实验6:apache日志轮替
        • 实验7:不记录指定文件类型的日志
        • 实验8:apache配置静态缓存
        • 实验9:禁止解析php

1. 学apache前需要知道的知识点

HTML语言:超文本标记语言,使用html语言编写的文本叫超文本,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

HTTP协议:超文本传输协议

HTTP使用统一资源标识符(URL)来建立连接和传输数据。是一个基于TCP/IP通信协议来传递数据的协议,属于应用层协议。

URL:统一资源定位符

统一资源定位符是一些数据或文件在互联网上的地址,以及客户需要访问的地址。是标准资源的地址。http://www.kernel.com:80/image/a.jpg

知识拓展:

**URI:**统一资源标志符,URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。

虚拟机:通过创建虚拟硬件,完成系统安装环境部署的方式,必须依托宿主机完成

虚拟主机:web 服务器上的网站平台构建方式,一个网站平台可以同时独立运行多个网站的部署方式

实现虚拟主机的三种方式:

(1)基于 IP 地址(不推荐,因为 IPv4 不够用)

(2)基于 port 地址(不推荐,因为使用不方便)

(3)基于域名的虚拟主机(推荐使用)

2. apache详解

2.1 概述

​ apache具有跨平台和安全性被企业广泛使用,可以通过Perl、python和php等解释器快速编译到服务器中。

​ apache支持SSL技术、多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。现在web服务器市场使用率最高的是apache的60%,然后是nginx的28%,其次就是tomcat

2.2 工作模式

​ Apache一共有3种稳定的MPM模式(MPM:多进程处理模块),它们分别是prefork、worker、event

在这里插入图片描述

    apache启动之前就已经预先fork(在apache中是创建)一些子进程,等待请求进来。
    做这样的原因就是为了减少频繁创建进程和销毁进程。每个子进程只有一个线程,在一个时间点内,只能处理一个请求。
------------------------------------------------------------------
优点:这种模式相对来说是成熟稳定,可以兼容所有新老项目,是这几个模式最安全的
缺点:一个进程长期不销毁会占用更多的系统资源,消耗更多的内存。也不支持高并发请求

在这里插入图片描述

采用多进程和多线程模式混合。
这个也是预先创建几个子进程,然后每个子进程创建了监听线程和工作线程。
当每个用户在请求的时候,会被分配到一个线程来服务。
线程比进程更加轻量,线程是会共享父进程的内存空间,内存负重也会减少一些。
它比prefork更适合高并发的场景下
----------------------------------------------------------------
优点:每个线程占据了更少的内存,总体内存利用率提高了,高并发下表现更优秀。
缺点:必须考虑线程安全的问题。

在这里插入图片描述

    它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题。
    event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。
    HTTP采用keepalive方式减少TCP连接数量,但是由于需要与服务器线程或进程进行绑定,导致一个繁忙的服务器会消耗完所有的线程。
    Event MPM是解决这个问题的一种新模型,它把工作进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限制,此时Event MPM方式是最有效的。

在apache中什么是keep-alive场景

	在Apache中,keep-alive场景是指当HTTP请求和响应在单个TCP连接上进行多次传输时的情况。
	这种情况下,客户端和服务器之间的TCP连接在请求完成后不会立即关闭,而是保持打开状态,以便后续请求可以继续在该连接上进行传输。
----------------------------------------------------------------- 
具体来说,keep-alive场景的特点和优势包括:
    1.减少TCP连接建立和关闭的开销:
        对于每个HTTP请求,如果都需要建立一个新的TCP连接,那么在网络传输和服务器资源消耗上都会带来额外的开销。
        而keep-alive允许在同一个TCP连接上进行多次请求和响应,从而减少了这种开销。

    2.提高性能和响应速度:
        由于减少了TCP连接的建立和关闭,服务器可以更快速地响应客户端的请求。
        此外,在包含大量图片的HTML文档中,使用keep-alive可以显著提高加载速度,减少等待时间。
查看方式:
httpd -V | grep -i "server mpm"

指定方式:
在编译时,在选项中指定,--with-mpm=xxx
./configure --help | grep mpm
2.3 启动apache网站整体流程

在这里插入图片描述

在这里插入图片描述

2.4 相关文件保存位置

配置文件位置

源码包安装:	PREFIX(安装路径)/etc/httpd.conf(主配置文件)
			PREFIX/etc/extra/*.conf(子配置文件)
rpm包安装:  /etc/httpd/conf/httpd.conf
		   /etc/httpd/conf.d/*.conf
		   /usr/share/doc/httpd-*.*.*
			复制上述文件到/etc/httpd/conf.d/

网页文件位置

源码包安装:	PREFIX/htdocs/
rpm包安装:	 /var/www/html/

日志文件位置

源码包安装:	PREFIX/logs/
rpm包安装:	 /var/log/httpd/
2.5 配置文件详解

针对主机环境的基本配置参数

ServerRoot		/usr/local/apache2 	#apache主目录
Listen			80		#监听端口{Listen 192.168.99.135:80}
LoadModule		php7				#加载的相关模块
User						#用户
Group						#组
ServerAdmin					#管理员邮箱
ServerName		#服务器名(没有域名解析时,使用临时解析。默认不开启)
ErrorLog "logs/error_log					#服务器错误日志
CustomLog "logs/access_log" common			#访问记录日志
DirectoryIndex index.html index.php		#默认网页文件名,优先级顺序
Include  etc/extra/httpd-vhosts.conf    #子配置文件中内容也会加载生效

主页目录即权限

DocumentRoot "/usr/local/apache2/htdocs"   #网页文件存放目录(默认)
<Directory "/usr/local/apache2/htdocs">    #定义指定目录的权限
	#定义指定目录没有任何额外权限
	Options Indexes FollowSymLinks None	
    #定义指定目录拥有所有权限(除去MultiViews以外)
	Options Indexes FollowSymLinks	All		
    #定义指定目录浏览权限(当此目录下没有默认网页文件时,显示目录内容)
	Options Indexes FollowSymLinks	Indexes				
	#没有Indexes这个选项,当被访问目录下没有首页文件时禁止显示文件列表
	
	#准许软链接到其他目录
	Options Indexes FollowSymLinks		
	#准许文件名泛匹配(需要手动开启模块才有效negotiation)
	Options Indexes MultiViews
    
    #定义是否允许目录下.htaccess文件中的权限生效
    #.htaccess中权限不生效
	AllowOverride None  
	#文件中所有权限都生效						
	AllowOverride	All	
    #文件中,只有网页认证的权限生效
	AllowOverride	AuthConfig					
	#设置用户访问控制列表
	Require all granted(denied)
</Directory>
	
<IfModule dir_module>	#此标签用来指定访问到指定目录的首页
    DirectoryIndex index.html index.php	#可以写多个,但是有优先级之分
</IfModule>

httpd三种方法实现资源共享

1.将目录声明为默认网页目录:Document
2.软连接:FollowSymLinks
3.目录别名:alias_module
注意:不管哪种方式将目录作为网页共享目录,都要使用<Directory /dir>声明该目录的权限

3. apache配置实验

实验1:设置apache的目录别名

实验需求:如果想将一个不在DocumentRoot目录中的文件共享到网站上,并能够让它们留在本来位置而不需要进行移动的话,处理这种情况可以通过建立别名的方式将URL指向特定的目录

​ 编辑主配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 编辑子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf

在这里插入图片描述

实验2:apache的用户认证

实验需求:一般情况下网站都是有一个管理后台的网页,而且管理后台就有密码,为了更加安全,可以添加用户认证

​ 1.编辑主配置文件

vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.指定目录下创建权限文件

cd /usr/local/apache2/htdocs/typecho/admin 
#切换该目录下创建.htaccess,并添加以下内容

在这里插入图片描述

​ 3.建立密码文件,加入允许访问的用户(这个用户和系统用户无关)

#建立密码文件,只有添加第一个用户时,采用-c
[root@localhost admin]#  htpasswd  -c  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type
#添加多个用户使用-m参数
[root@localhost admin]#  htpasswd  -m  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type

​ 4.重启apache服务

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

在这里插入图片描述

实验3:虚拟主机 (重点)

实验需求:在一台服务器上实现多个多个虚拟主机(网站空间),来完成一个服务器上实现多个网站

实验准备

​ 1.准备两个域名 (www.typechoblog.com | www.discurz.com)

​ 2.网站主页目录规划 (htdocs目录下的typecho和discurz )

实验步骤

​ 1.修改主配置文件开启文件关联

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.编辑子配置文件,编写虚拟主机标签

[root@localhost htdocs]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf 

在这里插入图片描述

在这里插入图片描述

​ 3.重启服务,验证结果

[root@localhost htdocs]# /usr/local/apache2/bin/apachectl stop
[root@localhost htdocs]# /usr/local/apache2/bin/apachectl start
#注意在windows需要修改本机hosts文件,linux也是
192.168.99.135      www.typechoblog.com
192.168.99.135      www.discurz.com
实验4:域名跳转(重点)

实验需求:一个服务器难免会有多个域名,多个域名要分出主次,不管使用哪个域名最后都要回到主域名,这样就是域名跳转,状态码301是永久跳转,302是临时跳转

实验条件:虚拟主机能正常访问;打开主配置文件开启重写模块

实验步骤

​ 1.开启重写模块

[root@localhost htdocs]# vim /usr/local/apache2/etc/httpd.conf
#打开重写模块
LoadModule rewrite_module modules/mod_rewrite.so

​ 2.修改虚拟主机配置文件

<Directory "/usr/local/apache2/htdocs/typecho/">
        Options Indexes FollowSymLinks   ##准许软链接到其他目录
        AllowOverride All         #开启权限认证文件
        Require all granted        #设置用户访问列表
</Directory>
<VirtualHost 192.168.99.135:80>                  #虚拟主机标签
        ServerAdmin blog@typecho.com             #管理员邮箱    
        DocumentRoot "/usr/local/apache2/htdocs/typecho/"  #网站主目录
        ServerName www.typechoblog.com			#网站域名
        ServerAlias blog.lcy.com				#网站别名
        ErrorLog "logs/blog-error.log"			#错误日志
        CustomLog "logs/blog-access_log" common   #访问日志
</VirtualHost>

<Directory "/usr/local/apache2/htdocs/discurz/">
        Options Indexes FollowSymLinks     
        AllowOverride All
        Require all granted
</Directory>
<VirtualHost 192.168.99.135:80>
        ServerAdmin luntan@discurz.com
        DocumentRoot "/usr/local/apache2/htdocs/discurz/"
        ServerName www.discurz.com
        ServerAlias discurz.lcy.com
        ErrorLog "logs/tan-error.log"
        CustomLog "logs/tan-access_log" common
</VirtualHost>

​ 3.创建规则匹配文件

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.lcy.com
RewriteRule  ^(.*)$   http://www.typechoblog.com/$1 [R=permanent]
[root@localhost ~]# vim /usr/local/apache2/htdocs/discurz/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^discurz.lcy.com
RewriteRule  ^(.*)$   http://www.discurz.com/$1 [R=permanent,L]

​ 4.重启服务器并测试

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验5:apache+openssl实现https(重点)

实验需求:https是密文传输协议,比http安全的多。现在使用http+ssl实现https加密功能

实验条件:检查apache是否支持ssl,还有ssl是否安装,已安装就将ssl启动

模块存放目录:/usr/local/apache2/modules
检查模块是否启用:[root@localhost modules]# /usr/local/apache2/bin/apachectl -M | grep ssl

实验步骤

​ 1.开启ssl模块功能

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
LoadModule ssl_module modules/mod_ssl.so #取消注释
Include etc/extra/httpd-ssl.conf	#取消注释

​ 2.ca证书申请

[root@localhost ~]# cd /usr/local/apache2/etc/
[root@localhost etc]# mkdir ssl
[root@localhost etc]# cd ssl
[root@localhost ssl]# openssl genrsa -out blog.key 1024
#建立服务器私钥,生成RSA私钥
	
[root@localhost ssl]# openssl req -new -key blog.key -out blog.csr
#需要依次输入国家,地区,城市,组织,组织单位,Email等信息。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

[root@localhost ssl]#  openssl x509 -req -days 365 -sha256 -in blog.csr -signkey blog.key -out blog.crt
#使用CA服务器签发证书,设置证书的有效期等信息

​ 3.修改etc/extra/httpd-ssl子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
    <VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache2/htdocs"
    ServerName www.typechoblog.com
    ServerAdmin you@example.com
    ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
    TransferLog "/usr/local/apache2/logs/type_ssl_access_log"
    SSLCertificateFile "/usr/local/apache2/etc/ssl/blog.crt"
    SSLCertificateKeyFile "/usr/local/apache2/etc/ssl/blog.key"

#开启调用mod_socache_shmcb模块
[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

​ 4.重启验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

​ 5.强制跳转(只允许https访问,不允许http访问)

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
    RewriteEngine on						#开启转发规则
    RewriteCond %{SERVER_PORT} !^443$		#检查访问端口只要目标不是443的
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]	#301永久跳转,302临时跳转,  L:当前行规则执行完,不在继续执行新的规则
#当使用旧域名访问时,规则会自动跳转到加密的新域名来访问
#若不是通过旧域名访问,会自动跳转到下一条规则
#若不是通过443端口进行访问,那么规则会自动添加https协议使其通过,如果是443端口,则继续使用原域名访问

#重启验证
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验6:apache日志轮替

实验需求: 设置成(每小时|每天|每周|每月)一个日志文件

实验步骤

​ 1.设置博客的ssl错误记录和博客的ssl访问记录

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
	ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
	TransferLog "/usr/local/apache2/logs/type_ssl_access_log"

​ 2.设置apache分割

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
#错误日志
ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
#访问日志
TransferLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/type_ssl_access_%Y%m%d.log 86400"

​ 3.重启服务并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验7:不记录指定文件类型的日志

实验需求:当一个网站访问量特别大,访问日志就很多,通常是图片、html、css比较占资源,通过配置忽略、不记录一些不必要的日志文件

实验步骤

​ 配置日志不记录图片的访问

vim /usr/local/apache2/etc/httpd.conf
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$"  image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/access_%Y%m%d.log 86400" combined env=!image-request

#将指定的文件标记成image-request,然后在访问日志记录后面加上env=!image-request,表示每次日志轮替的时候都会过滤这些image-request标记好的文件

#重启验证
实验8:apache配置静态缓存

实验需求:为了提高用户访问速度,只有进行第一次访问加载网站是调用网站服务器,第二次在加载,是调用本地电脑缓存

实验步骤

1、配置静态缓存

vim /usr/local/apache2/etc/httpd.conf
<IfModule mod_expires.c>		#此模块默认未启用,请手动启用
  ExpiresActive on
  ExpiresByType image/gif "access plus 1 days"
  ExpiresByType image/jpeg "access plus 24 hours"
  ExpiresByType image/png "access plus 24 hours"
  ExpiresByType text/css "now plus 2 hours"
  ExpiresByType application/x-javascript "now plus 2 hours"
  ExpiresByType application/javascript "now plus 2 hours"
  ExpiresByType application/x-shockwave-flash "now plus 2 hours"
  ExpiresDefault "now plus 0 min"
</IfModule>

#或者使用 mod_headers 模块实现:该模块默认启用
<IfModule mod_headers.c>
  #htm,html,txt 类的文件缓存一个小时
  <filesmatch "\.(html|htm|txt)$">
     header set cache-control "max-age=3600"
  </filesmatch>
  #css, js, swf 类的文件缓存一个星期
  <filesmatch "\.(css|js|swf)$">
     header set cache-control "max-age=604800"
  </filesmatch>
  #jpg,gif,jpeg,png,ico,flv,pdf 等文件缓存一年
  <filesmatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
     header set cache-control "max-age=29030400"
  </filesmatch>
</IfModule>

说明: 上面使用的是mod_expires,而下面用的是 mod_headers,要想使用这些模块,必须要事先已经支持。如何查看是否支持,使用命令: /usr/local/apache2/bin/apachectl -M | grep mod_expires

2、重启服务器并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
#验证:
curl  'http://www.typechoblog.com/image/a.jpg' -I
HTTP/1.1 200 OK
Date: Wed, 26 Oct 2016 03:51:26 GMT
Server: Apache/2.2.31 (Unix) PHP/5.5.38
Last-Modified: Tue, 31 May 2016 03:08:36 GMT
ETag: "46891b-16b-5341ab0597500"
Accept-Ranges: bytes
Content-Length: 363
Cache-Control: max-age=86400
Expires: Thu, 27 Oct 2016 03:51:26 GMT
Content-Type: image/jpg
实验9:禁止解析php

实验需求:做网站安全的时候,比如上传某些文件,避免上传的文件有木马或者遭到黑客攻击的时候,就可以执行禁止解析php

实验步骤

vim /usr/local/apache2/etc/httpd.conf
#配置禁止解析php
<Directory /usr/local/apache2/htdocs/data>
    php_admin_flag engine off 
    <filesmatch "(.*)\.php$">
        Order deny,allow
        Deny from all 
    </filesmatch>
</Directory>
#重启验证

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

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

相关文章

网络安全等级保护2.0(等保2.0)全面解析

一、等保2.0的定义和背景 网络安全等级保护2.0&#xff08;简称“等保2.0”&#xff09;是我国网络安全领域的基本制度、基本策略、基本方法。它是在《中华人民共和国网络安全法》指导下&#xff0c;对我国网络安全等级保护制度进行的重大升级。等保2.0的发布与实施&#xff0c…

【网络专用语解释】arp协议

ARP协议 是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确定目标的物理地址&#xff1b;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间&am…

基于STM32的智能门锁控制系统

目录 引言环境准备智能门锁控制系统基础代码实现&#xff1a;实现智能门锁控制系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;门锁管理与优化问题解决方案与优化收尾与总结 1. 引言 智能门锁控制系统通过使用STM32嵌…

zdppy_api+vue3+antd开发前后端分离的tab卡片

后端代码 import api import uploadsave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get("/", rand_content),u…

【Python画图-循环01】一文叫你搭建python画图最优环境配置

【Python画图-循环01】一文叫你搭建python画图最优环境配置 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#…

【Python123题库】#表达式求值 #三角函数计算 #计算存款利息

禁止转载&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_45801887/article/details/140079136 参考教程&#xff1a;B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 表达式求值三角函数计算计算存款利息 表达式求值…

Visual Studio 设置回车代码补全

工具 -> 选项 -> 文本编辑器 -> C/C -> 高级 -> 主动提交成员列表 设置为TRUE

哪个麦克风音质好,麦克风哪种好,2024年热门家用麦克风推荐

​在这个信息爆炸的时代&#xff0c;网络直播和短视频成为了人们获取信息、娱乐和社交的重要方式。作为自媒体人&#xff0c;拥有一款优秀的领夹式无线麦克风是必不可少的。它不仅能够帮助你在各种环境中保持清晰的声音&#xff0c;还能提升你的作品质量和专业度。然而&#xf…

go Channel原理 (三)

Channel 设计原理 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存。 在主流编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信&#xff0c;同时也提供了一种不同的并发模型&#xff0c;即通…

如何在本地一键配置最强国产大模型

自从OpenAI的ChatGPT横空出世以来&#xff0c;国内外各类大语言模型&#xff08;LLM&#xff09;层出不穷&#xff0c;其中不乏Google的Gemini、Claude、文心一言等等。相较于竞争激烈的商业模型赛道&#xff0c;以Llama为代表的开源大模型的进步速度也十分惊人。 伴随着大语言…

乾元通渠道商中标吴忠市自然灾害应急能力提升项目

近日&#xff0c;乾元通渠道商中标宁夏回族自治区吴忠市自然灾害应急能力提升项目&#xff0c;乾元通作为设备厂家&#xff0c;为项目提供通信指挥类装备&#xff08;多链路聚合设备&#xff09;QYT-X1。 青岛乾元通数码科技有限公司作为国家应急产业企业&#xff0c;深耕于数据…

酒店品牌网站建设订房拓宽渠道如何进行

酒店在城市中有多个品牌&#xff0c;主要以住宿、餐饮为主&#xff0c;覆盖本地生活、外地旅游、活动策划场景等人群业务&#xff0c;同行竞争和自身方略发展以及客户的便捷需求&#xff0c;都使得酒店需要不同方向发力提高品牌力以及多个事项管理等。 酒店需要客户进店完成服…

GPT-5:下一代AI如何彻底改变我们的未来

GPT-5 发布前瞻&#xff1a;技术突破与未来展望 随着科技的飞速发展&#xff0c;人工智能领域不断迎来新的突破。根据最新消息&#xff0c;OpenAI 的首席技术官米拉穆拉蒂在一次采访中确认&#xff0c;GPT-5 将在一年半后发布&#xff0c;并描述了其从 GPT-4 到 GPT-5 的飞跃如…

【你也能从零基础学会网站开发】(了解)关系型数据库的基本架构体系结构与概念理解

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 关系型数据库的…

《数字图像处理与机器视觉》案例三 (基于数字图像处理的物料堆积角快速测量)

一、前言 物料堆积角是反映物料特性的重要参数&#xff0c;传统的测量方法将物料自然堆积&#xff0c;测量物料形成的圆锥表面与水平面的夹角即可&#xff0c;该方法检测效率低。随着数字成像设备的推广和应用&#xff0c;应用数字图像处理可以更准确更迅速地进行堆积角测量。 …

在AvaotaA1全志T527开发板上使用 SSH 连接开发板

使用 SSH 连接开发板 启动系统 前提条件&#xff1a; 确保已经制作好AvaotaA1系统镜像至TF卡。 ​ 确保开发板电源供电正常&#xff1a;默认SPI显示屏有图案输出。 确保当前环境下有可以正常上网的路由器RJ45网线接口。 获取IP地址 如果想通过ssh去登陆开发板系统&#…

便携式气象站:科技助力,气象观测的新选择

在气象观测领域&#xff0c;便携式气象站不仅安装方便、操作简单&#xff0c;而且功能齐全、性能稳定&#xff0c;为气象观测带来了极大的便利。 首先&#xff0c;便携式气象站的便携性&#xff0c;与传统的气象站相比&#xff0c;它不需要复杂的安装过程和固定的设备基础&…

[A133]全志u-boot中的I2C驱动分析

[A133]全志u-boot中的I2C驱动分析 hongxi.zhu 2024-6-27 一、IIC标准读写时序 IIC是高位(MSB)先传输 二、代码流程 2.1主机写数据 brandy/brandy-2.0/u-boot-2018/drivers/i2c/sunxi_i2c.c static int sunxi_i2c_write(struct i2c_adapter *adap, uint8_t chip,uint32_t addr…

GA自动点击器(Auto Clicker)v1.0.83高级版

其能够在用户指定的任何应用程序中&#xff0c;根据设定的时间间隔和位置&#xff0c;自动进行重复的点击或滑动动作. 链接&#xff1a;https://pan.baidu.com/s/11AV4Zxg6y9364kADDDSFYQ?pwdbo6q 提取码&#xff1a;bo6q

深入解读一下`android.os.CountDownTimer`

简介 在 Android 开发中&#xff0c;CountDownTimer 是一个非常有用的类&#xff0c;它可以用于倒计时任务&#xff0c;比如倒计时器、限时活动等。CountDownTimer 提供了一个简单的方式来实现定时操作&#xff0c;无需我们手动管理线程和计时器。 本文将深入解析 CountDownT…