Apache的配置与应用

news2024/11/17 5:22:41

目录

1、Apache简介

 2、Apache连接保持

3、Apache的访问控制

3.1、客户机地址限制

3.2、用户授权限制

(1)创建用户认证数据文件 

(2)添加用户授权配置 

(3)验证用户访问授权 

4、Apache日志分割 

4.1、Apache自带rotatelogs分割 

4.2、使用第三方工具cronolog分割 

(1)编译安装cronolog工具

(2)设置cronolog工具分割apache 

5、AWStats日志分析 

5.1、部署AWStats分析系统 

(1)安装AWStats软件包

(2)为要统计的站点建立配置文件 

(3)修改站点统计配置文件 

(4)执行日志分析,并设置cron计划任务

5.2、访问AWStats分析系统 


1、Apache简介

Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。 


 2、Apache连接保持

HTTP是属于应用层的面向对象协议,基于TCP协议之上的可靠传输。每次在进行HTTP连接之前,需要先进行TCP连接,在HTTP连接结束后要对TCP连接进行终止,每个TCP连接都需要进行三次握手与四次断开。HTTP 协议不会对之前发生过的请求和响应进行管理,所以频繁地建立与关闭连接对于HTTP而言会消耗更多的内存与CPU资源。能不能允许通过同一个TCP连接发出多个请求,从而减少与多个连接相关的延迟,解决办法就是连接保持。 

对于HTTP/1.1,就是尽量地保持客户端的连接,通过一个连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低资源开销。

Apache通过设置配置文件httpd-default.conf中相关的连接保持参数来开启与控制连接保持功能。 

  • KeepAlive:决定是否打开连接保持功能,后面接OFF表示关闭,接ON表示打开,可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。
  • KeepAliveTimeout:表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源。 
  • MaxKeepAliveRequests:用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。

    3、Apache的访问控制

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本节将分别介绍客户机地址限制、用户授权限制,这两种访问控制方式都应用于httpd.conf 配置文件中的目录区域<Directory 目录位置>......</Directory>范围内。

3.1、客户机地址限制

通过Require配置项,可以根据客户端的主机名或IP地址来决定是否允许客户端访问。在httpd服务主配置文件的<Location>、<Directory>、<Files>、<Limit>配置段中均可以使用Require配置项来控制客户端的访问。使用Require配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是IP地址、网络地址、主机名或域名。当Require配置项之后为“all”时,表示匹配任意地址。限制策略的格式如下所示。  

  • Require all granted:允许所有主机访问;
  • Require all denied:拒绝所有主机访问;
  • Require local:仅允许本地主机访问;
  • Require [not] host :允许或拒绝指定主机或域名访问;
  • Require [not] ip :允许或拒绝指定IP地址网络访问。

通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是“Require all granted”的策略,表示允许从任何客户机访问,策略格式如下所示。 

<Directory "/usr/local/httpd/htdocs">
......//省略部分内容
    Require all granted
</Directory>

定义限制策略时,多个不带“not”的Require配置语句之间是“或”的关系,即任意一条Require配置语句满足条件均可访问。若既出现了不带“not”的Require配置语句,又出现了带“not”的Require配置语句,则配置语句之间是“与”的关系,即同时满足所有 Require 配置语句才能访问。 

需要使用“仅允许”的限制策略时,应使用Require配置语句明确设置允许策略,只允许一部分主机访问。例如,若只希望IP地址为192.168.23.10的主机能够访问,目录区域应做如下设置。

<Directory "/usr/local/httpd/htdocs">
......//省略部分内容
    Require ip 192.168.23.10
</Directory>

反之,需要使用“仅拒绝”的限制策略时,灵活使用Require与Require not配置语句设置拒绝访问策 略 , 仅禁止一部分主机访问。在使用not禁止访问时要将其置于容器中,并在容器中设置相应的限制策略。例如,若只希望禁止来自两个内网网段192.168.0.0/24和192.168.1.0/24的主机访问,但允许其他任何主机访问,可以使用如下限制策略。

<Directory "/usr/local/httpd/htdocs">
......//省略部分内容
    <RequireAll>
    Require all granted
    Require not ip 192.168.0.0/24 192.168.1.0/24
    <RequireAll>
</Directory>

当未被授权的客户机访问网站目录时,将会被拒绝访问。 

3.2、用户授权限制

httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证需要在编译httpd之前添加“--enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证;而基本认证是httpd服务的基本功能,不需要预先配置特别的选项。 

基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程。 认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程。下面将以基本认证方式为例,添加用户授权限制。

(1)创建用户认证数据文件 

httpd 的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。 

使用htpasswd工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件。例如,执行以下操作可以新建数据文件/usr/local/httpd/conf/.awspwd,其中包含一个名为webadmin的用户信息。

[root@centos7-1 ~]# cd /usr/local/httpd/
[root@centos7-1 httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New password:      //根据提示设置密码
Re-type new password: 
Adding password for user webadmin
[root@centos7-1 httpd]# cat /usr/local/httpd/conf/.awspwd  //确认用户数据文件
webadmin:$apr1$o4Sth9mZ$CgqfJvjvUKVeD2cOu6bHY0

若省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。例如,需要向.awspwd数据文件中添加一个新用户kcce时,可以执行以下操作。

[root@centos7-1 httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd kcce
New password: 
Re-type new password: 
Adding password for user kcce
[root@centos7-1 httpd]# cat /usr/local/httpd/conf/.awspwd   //确认用户数据文件
webadmin:$apr1$o4Sth9mZ$CgqfJvjvUKVeD2cOu6bHY0
kcce:$apr1$rDUHvxtI$8FbPAuuSnvJsl5MiF/PVL0
(2)添加用户授权配置 

有了授权用户账号以后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd数据文件中的任一用户访问系统,可以执行以下操作。 

[root@centos7-1 ~]# vim /usr/local/httpd/conf/httpd.conf 
......//省略部分内容
<Directory "/usr/local/httpd/htdocs">
......//省略部分内容  
    AuthName "DocumentRoot"
    AuthTYPE Basic
    AuthUserFile /usr/local/httpd/conf/.awspwd
    Require valid-user
</Directory>

[root@centos7-1 ~]# systemctl restart httpd  //从启服务使配置生效

在上述配置内容中,相关配置项的含义如下。 

  •  AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。
  • AuthType:设置认证的类型,Basic表示基本认证。
  • AuthUserFile:设置用于保存用户账号、密码的认证文件路径。
  • require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user 表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如 webadmin)。
(3)验证用户访问授权 

当访问系统时,浏览器会首先弹出认证对话框,如下图所示。只有输入正确的用户名和密码后才能查看特定目录下的网站资源,否则将拒绝访问。 

4、Apache日志分割 

随着网站的访问量越来越大,默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么如果日志文件占用磁盘空间很大的话势必会将整个日志文件删除,这样也丢失了很多对网站比较宝贵的信息,而这些日志可以用来进行访问分析、 网络安全监察、网络运行状况监控等。

另外,如果服务器遇到故障时,运维人员要打开日志文件进行分析,打开的过程会消耗很长时间,也势必会增加处理故障的时间。因此管理好这些海量的日志对网站的意义很大, 我们会将Apache的日志进行按每天的日期自动分割。下面介绍两种方法均可实现。

4.1、Apache自带rotatelogs分割 

首先,将 Apache主配置文件httpd.conf打开,配置网站的日志文件转交给rotatelogs分割处理。

[root@centos7-1 ~]# mkdir /var/log/httpd
[root@centos7-1 ~]# vim /usr/local/httpd/conf/httpd.conf
......//省略部分内容
# ErrorLog "logs/error_log"
ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"  //添加此行内容
......//省略部分内容

    # CustomLog "logs/access_log" common
CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined  //添加此行内容
......//省略部分内容

[root@centos7-1 ~]# systemctl restart httpd
[root@centos7-1 ~]# ll /var/log/httpd/
总用量 8
-rw-r--r-- 1 root root 808 1月   3 11:30 access_20240103.log
-rw-r--r-- 1 root root 289 1月   3 11:30 error_20240103.log

其中ErrorLog行是错误日志,-l表示使用本地时间代替GMT时间作为时间基准。需要注意的是在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。 CustomLog行是定义访问日志格式,86400表示一天,即每天生成一个新的日志文件。 

重启 Apache 服务,查看日志文件是否已经按日期分割。 

4.2、使用第三方工具cronolog分割 

除了Apache自带rotatelogs分割工具,也可使用第三方工具cronolog对Apache日志进行分割,具体操作如下所示。 

(1)编译安装cronolog工具
[root@centos7-1 ~]# tar zxf cronolog-1.6.2.tar.gz -C /usr/src/
[root@centos7-1 ~]# cd /usr/src/cronolog-1.6.2/
[root@centos7-1 cronolog-1.6.2]# ./configure 
[root@centos7-1 cronolog-1.6.2]# make && make install
(2)设置cronolog工具分割apache 
[root@centos7-1 ~]# vim /usr/local/httpd/conf/httpd.conf
......//省略部分内容
# ErrorLog "logs/error_log"
# ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400" 
ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/www.kgc.com-error_%Y%m%d.log"  //添加此行内容
......//省略部分内容
    # CustomLog "logs/access_log" common
# CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined
CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www.kgc.com-access_%Y%m%d.log" combined  //添加此行内容
......//省略部分内容

[root@centos7-1 ~]# systemctl restart httpd.service
[root@centos7-1 ~]# ll /var/log/httpd/
总用量 16
-rw-r--r-- 1 root root 873 1月   3 11:31 access_20240103.log
-rw-r--r-- 1 root root 414 1月   3 11:52 error_20240103.log
-rw-r--r-- 1 root root 202 1月   3 11:52 www.kgc.com-access_20240103.log
-rw-r--r-- 1 root root 289 1月   3 11:52 www.kgc.com-error_20240103.log

5、AWStats日志分析 

在httpd服务器的访问日志文件access_log中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解Web站点的访问情况,如每天或特定时间段的访问IP数量,点击量最大的页面等。 

本小节将介绍如何安装AWStats日志分析系统,以完成自动化的日志分析与统计工作。

5.1、部署AWStats分析系统 

AWStats是使用Perl语言开发的一款开源日志分析系统,它不仅可用来分析Apache网站服务器的访问日志,也可以用来分析Samba、Vsftpd、IIS等服务的日志信息。结合crond等计划任务服务,可以对不断增长的日志内容定期进行分析。 

AWStats的软件包可以从官方网站下载。下面以awstats-7.7.tar.gz软件包为例,介绍为Web站点 www.kcg.com添加AWStats日志分析系统的过程。

(1)安装AWStats软件包

Awstats软件包的安装非常简单,只需将软件包解压到httpd服务器中的/usr/local/目录下即可。

[root@centos7-1 ~]# tar zxf awstats-7.7.tar.gz 
[root@centos7-1 ~]# mv awstats-7.7 /usr/local/awstats
(2)为要统计的站点建立配置文件 

AWStats系统支持统计多个网站的日志文件,通常以网站名称来区分不同的站点。因此,在执行日志文件分析之前,需要为每个Web站点建立站点统计配置文件,借助于AWStats系统提供的 awstats_configure.pl脚本可以简化创建过程。 

首先切换到awstats/tools目录下,并执行其中的awstats_configure.pl脚本。 

[root@centos7-1 ~]# cd /usr/local/awstats/tools/
[root@centos7-1 tools]# ./awstats_configure.pl

之后将会进入一个交互式的配置过程,将会检查awstats的安装目录、httpd服务的配置文件路径等系统环境,并提示用户指定站点名称、设置配置文件路径。

  • 指定httpd主配置文件的路径 

配置脚本将查找并识别httpd服务的主配置文件,以便自动添加相关配置内容。如果未能在常见的安装路径中找到相关配置内容,则用户需要根据提示进行手工指定。 

----- AWStats awstats_configure 1.0 (build 20140126) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf 
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf  //输入httpd.conf配置文件的路径
  • 为指定 Web 站点创建配置文件 

根据提示继续选择“y”以创建站点配置文件,并指定要统计的目标网站名称、站点配置文件的存放位置(默认为/etc/awstats)。 

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y  //确认创建新的站点配置文件

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.kgc.com  //指定要统计的目标网站名称

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>   //直接按Enter键接收默认设置

-----> Create config file '/etc/awstats/awstats.www.kgc.com.conf'
 Config file /etc/awstats/awstats.www.kgc.com.conf created.
......//省略部分内容

  • 后续配置工作 

后续配置工作接下来将会尝试重启httpd服务(支持使用/sbin/service httpd restart或/bin/systemctl restarthttpd.servic命令重启,需要有相关脚本,否则手动重启apache服务),然后设置cron计划任务(7.6版本尚不支持,需要根据提示使用/usr/local/awstats/tools/awstats_updateall.pl now命令,自行设置任务计划),按两次Enter键退出配置工具。 

Apache2.4以上版本,因为重新定义了访问权限,所以需要将自动生成的awstats访问权限进行相应修改。同时,加载CGI模块。

[root@centos7-1 ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined
<IfModule !mpm_prefork_module>
        LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
        LoadModule cgi_module modules/mod_cgi.so
</IfModule>
......//省略部分内容
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    # Order allow,deny  //注释掉
    # Allow from all  //注释掉
    Require all granted  //添加
</Directory>

[root@centos7-1 ~]# systemctl restart httpd

根据上述设置过程,为网站www.kgc.com新建立的站点统计配置文件将存放到/etc/awstats目录下,文件名称为awstats.www.kgc.com.conf。若还需要统计其他Web站点的日志,可以执行 awstats_configure.pl脚本创建新的配置文件。可以使用http://localhost/awstats/awstats.pl?config=www.kgc.com地址访问日志分析页面。

(3)修改站点统计配置文件 

为站点www.kgc.com建立好配置文件以后,还需要对其做进一步的修改。修改的内容主要包括指定要分析的Web日志文件和指定用来存放统计数据的目录。 

[root@centos7-1 ~]# vim /etc/awstats/awstats.www.kgc.com.conf 
LogFile="/usr/local/httpd/logs/access_log" 
DirData="/var/lib/awstats
......//省略部分内容

[root@centos7-1 ~]# mkdir /var/lib/awstats

其中,LogFile用来指定日志路径,应设置Web日志文件的实际位置;DirData用来指定数据目录,可以采用默认值,但需要创建指定的目录(/var/lib/awstats)。

(4)执行日志分析,并设置cron计划任务

使用AWStats提供的awstats_updateall.pl脚本,可以更新所有站点(根据站点配置文件)的日志统计数据。执行该脚本时,系统将会自动分析新增的日志内容,并将分析结果更新到统计数据库中。

[root@centos7-1 ~]# cd /usr/local/awstats/tools/
[root@centos7-1 tools]# ./awstats_updateall.pl now
Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update -config=www.kgc.com -configdir="/etc/awstats"' to update config www.kgc.com
Create/Update database for config "/etc/awstats/awstats.www.kgc.com.conf" by AWStats version 7.7 (build 20180105)
From data in log file "/usr/local/httpd/logs/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 43
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 19 corrupted records,
 Found 0 old records,
 Found 24 new qualified records.

[root@centos7-1 tools]#

由于Web日志文件的内容是在不断更新的,为了及时反馈网站访问情况,日志分析工作也需要定期、自动地执行。通过 crond 服务可设置计划任务,一般建议每五分钟执行一次日志分析任务。

[root@centos7-1 ~]# crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

5.2、访问AWStats分析系统 

访问站点http://192.168.23.201/awstats/awstats.pl?config=www.kgc.com后,即可看到AWStats 日志分析系统的统计页面,该页面分别按访问时间、用户来源、所用浏览器等类别列出各种详细的网站访问情况,如下图所示。若此处访问出现403 Forbidden错误,关闭selinux即可正常访问。

 AWStats日志分析系统的统计页面

在该页面中,拖动窗口右侧的滚动条即可查看整个分析报告内容;或者单击左侧导航栏中的链接,可以选择查看其中的部分内容。 

在“按参观时间”类别下,可以查看每小时、每天、每周、每月的网站访问次数、网页 数、文件数等信息。

在“浏览器统计”类别下,可以查看用户的参观时间、所用的操作系统、浏览器版本、搜索本网站的关键词等相关信息。

在访问AWStats系统时,需要指定awstats目录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在Web根目录下建立一个自动跳转的HTML网页。例如,执行以下操作后,用户只要访问 http://www.kgc.com/awb.html,即可自动跳转到 www.kgc.com站点的AWStats日志分析页面。

[root@centos7-1 ~]# vim /var/www/html/awb.html
<html>
 <head>
 <meta http-equiv=refresh content="0;
 url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
 </head>
 <body></body>
</html>

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

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

相关文章

Vivado JESD204B与AD9162建立通信实战总结

一、FPGA与AD9162的JESD204B接口 FPGA作为JESD204B接口的发送端&#xff0c;AD9162作为JESD204B接口的接收端。FPGA和AD9162的device clk、SYSREF由同源时钟芯片产生。其中&#xff0c;FPGA和AD9162的divice clk时钟不同&#xff0c;并且FPGA的decive clk等同于JESD204B IP的co…

【UnityShader入门精要学习笔记】(3)章节答疑

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 复习&#xff08;阶段性总结…

数据分析案例-外国电影票房数据可视化分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

k8s 1.23.5版本安装ingress1.6.4

1、背景 网上找了好几个ingress 文件&#xff0c;可能是版本没对&#xff0c;ingress都没有安装成功&#xff0c;最后查了相关资料&#xff0c;手动安装了。 下面是版本的匹配列表 github中ingress 地址&#xff1a;https://github.com/kubernetes/ingress-nginx 1.23.5版本支…

MySQL的安装网络配置

目录 一. MySQL5.7的安装 二. MySQL8.0的安装 三. 配置网络访问 思维导图 一. MySQL5.7的安装 1. 解压 2. 将my.ini文件放入到解压文件中 3. 编辑my.ini文件&#xff0c;将路径改为当前路径 4. 进到bin目录下&#xff0c;以管理员身份打开cmd命令窗口 5. 安装MySQL服务 my…

HarmonyOS调研分享

经过十多年的发展&#xff0c;传统移动互联网的增长红利已渐见顶。万物互联时代正在开启&#xff0c;应用的设备底座将从几十亿手机扩展到数百亿 IoT 设备。GSMA 预测到 2025 年&#xff0c;全球物联网终端连接数量将达 246 亿个&#xff0c;其中消费物联网终端连接数量将达 11…

chatGPT带你学习设计模式 (二)抽象工厂模式(创建型模式) GURU

深入理解抽象工厂模式 引言 在面向对象编程中&#xff0c;对象的创建是一个常见且关键的挑战。尤其在需要管理一系列相关对象的创建时&#xff0c;传统的对象创建方法&#xff08;如直接使用 new 关键字&#xff09;可能导致代码的高耦合和低灵活性。这时&#xff0c;抽象工厂…

5+共病+WGCNA+机器学习+免疫浸润,经典共病生信思路,轻松拿5+

今天给同学们分享一篇生信文章“Identification of biomarkers for the diagnosis of chronic kidney disease (CKD) with non-alcoholic fatty liver disease (NAFLD) by bioinformatics analysis and machine learning”&#xff0c;这篇文章发表在Front Endocrinol (Lausann…

Spring-Retry 重试框架使用

一、Spring-Retry Spring-Retry框架是Spring自带的功能&#xff0c;具备间隔重试、包含异常、排除异常、控制重试频率等特点&#xff0c;是项目开发中很实用的一种框架。 支持手动调用方式和注解方式。 使用需引入下面依赖&#xff1a; <dependency><groupId>o…

Vue:脚手架Vue-CLI的使用

一、环境准备 vue脚手架&#xff08;vue-CLI&#xff09;的使用是基于nodejs环境下的。 你可以简单理解为&#xff0c;Java项目需要再jvm虚拟机上才能编译运行 nodejs的作用就是将vue文件编译成html、css、js代码文件。 如何安装nodejs 参考&#xff1a;https://blog.csdn.net…

Uibot (RPA设计软件)培训前期准备指南————课前材料

紧接着小北的上一篇博客&#xff0c;友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#xff09;-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135348488?spm1001.2014.3001.5502 课程安排如下&#xff1a; 序号 日期 内容 视…

五、Spring AOP面向切面编程(基于注解方式实现和细节)

本章概要 Spring AOP底层技术组成初步实现获取通知细节信息切点表达式语法重用&#xff08;提取&#xff09;切点表达式环绕通知切面优先级设置CGLib动态代理生效注解实现小结 5.5.1 Spring AOP 底层技术组成 动态代理&#xff08;InvocationHandler&#xff09;&#xff1a;…

springcloud alibaba整合sentinel并结合dashboard控制面板设置规则

目录 一、springcloud alibaba整合sentinel二、采用代码方式设置流控规则三、结合dashboard控制面板设置规则3.1、准备工作3.2、设置全局异常处理3.3、编写测试接口3.4、结合dashboard控制面板设置规则3.4.1、流控规则设置并测试——QPS3.4.2、流控规则设置并测试——线程数3.4…

反编译有哪些优势

在现在这个信息化的时代&#xff0c;软件开发中的编程是关键步骤&#xff0c;了解编程的反编译同样至关重要。对于大多数人来说&#xff0c;编程和反编译似乎是两个相对比较陌生的概念&#xff0c;但是都在软件开发周期中起着至关重要的作用。尤其是反编译&#xff0c;它在多个…

nginx访问路径匹配方法

目录 一&#xff1a;匹配方法 二&#xff1a;location使用: 三&#xff1a;rewrite使用 一&#xff1a;匹配方法 location和rewrite是两个用于处理请求的重要模块&#xff0c;它们都可以根据请求的路径进行匹配和处理。 二&#xff1a;location使用: 1&#xff1a;简单匹配…

基于Java Servelet的学籍管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

【Qt之Quick模块】7. Quick基础、常用组件Item、Rectangle、Text、TextInput、TextEdit等

1. 概述 Qt Quick模块是编写QML应用程序的标准库。Qt QML模块提供QML引擎和语言基础结构&#xff0c;Qt Quick模块提供用QML创建用户界面所需的所有基本类型。它提供了一个可视化画布&#xff0c;包括用于创建和动画化可视化组件、接收用户输入、创建数据模型和视图以及延迟对…

外汇天眼:CySEC与NAGA Markets Europe达成15万欧元的和解

塞浦路斯证券交易委员会&#xff08;CySEC&#xff09;已经与NAGA Markets Europe达成15万欧元的和解。有关监管决定的会议于2023年3月举行&#xff0c;然而直到今天才公布这个决定。 该和解符合2009年塞浦路斯证券交易委员会法第37(4)条的规定&#xff0c;该条赋予CySEC就任何…

FairGuard游戏加固产品常见问题解答

针对日常对接中&#xff0c;各位用户对FairGuard游戏加固方案在安全性、稳定性、易用性、接入流程等方面的关注&#xff0c;我们梳理了相关问题与解答&#xff0c;希望可以让您对产品有一个初步的认知与认可。 Q1:FairGuard游戏加固产品都有哪些功能? A&#xff1a;FairGuar…

用python实现调用海康SDK

海康威视&#xff08;Hikvision&#xff09;提供了Python SDK&#xff0c;用于与他们的摄像头和其他设备进行交互。为了使用这些SDK&#xff0c;首先需要在你的系统上安装海康威视的Python库。 下面是如何在Python中使用海康威视的SDK来调用摄像头的方法&#xff1a; python复…