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

Apache 配置和应用

目录

构建虚拟 Web 主机

Options指令解释

Options指令常用选项

AllowOverride指令解释:

地址限制策略:

httpd服务支持的虚拟主机类型包括以下三种:

基于域名的虚拟主机

 1.为虚拟主机提供域名解析

2.为虚拟主机准备网页文档

 3.添加虚拟主机配置

 4.设置访问控制

5.加载独立的配置文件

​编辑

 6.在客户机中访问虚拟 Web 主机

 基于IP地址的虚拟主机

1.添加一个虚拟网卡

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

3.修改主配置文件

​编辑 4.在客户机中浏览器访问虚拟 Web 主机

 基于端口的虚拟主机

1.修改虚拟主机配置

 2.修改主机主配置文件

 3.验证

 Apache 连接保持

 构建Web虚拟目录与用户授权限制

1.查看默认根目录是哪个

 2.创建虚拟目录

 3.用户授权限制

Apache 日志分割

浏览器访问 


构建虚拟 Web 主机

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。Apache虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

Options指令解释

Options指令的主要作用是控制特定目录将启用哪些服务器特性。可以在Apache服务配置文件的虚拟主机配置(VirtualHost)、特定目录配置(Directory)以及.htaccess文件中使用。

Options指令常用选项

None:表示不启用任何的服务器特性。
FollowSymLinks:服务器允许在此目录中使用符号连接(软链接)。
Indexes:如果输入的网址对应服务器上的一个文件目录,而此目录中又没有Apache配置文件中的DirectoryIndex指令指定的文件(例如: DirectoryIndex index.html index.php),则列出该目录下的所有文件。
MultiViews:如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入 http://localhost/file/hello ,如果在 file文件夹下并没有 hello子目录,那么服务器将会尝试在 file目录下查找形如 hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的 hello.jpg或者 hello.html。
All:表示除 MultiViews之外的所有特性。这也是Options指令的默认设置。

AllowOverride指令解释:

.htaccess(分布式隐含配置文件):提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含特定指令的文件,其中的指令作用于此目录及其所有子目录。
当AllowOverride设置成None时,相应的配置目录下的.htaccess文件是不被读取的,即无法生效。
当AllowOverride设置成All时,每一次请求访问相应目录下的文件时,都会读取.htaccess文件的配置,意味着原Apache指令会被.htaccess文件中的指令重写。
从性能和安全性考虑,一般都尽可能避免使用.htaccess文件,任何希望放在.htaccess文件中的配置,都可放在主配置文件(httpd.conf)的 <Directory>段中,而且高效。因此AllowOverride属性一般都配置成None 。

地址限制策略:

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

httpd服务支持的虚拟主机类型包括以下三种:

基于域名的虚拟主机

基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。例如,www.benet.com 和 www.accp.com 站点的 IP 地址都是 192.168.47.20。这是使用最为普遍的虚拟 Web 主机类型。

 1.为虚拟主机提供域名解析

方法一:部署DNS域名解析服务器 来提供域名解析

方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系
echo "192.168.80.10 www.benet.com" >> /etc/hosts
echo "192.168.80.10 www.accp.com" >> /etc/hosts

#!/bin/bash
read -p "请输入你的IP:" LAN_IP
mount /dev/sr0 /mnt/ &> /dev/null
#rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm &> /dev/null
yum install -y bind
cp /etc/named.conf{,.bak}
sed -i -e '13 s/127.0.0.1/any/' -e '19 s/localhost/any/' /etc/named.conf
cp /etc/named.rfc1912.zones{,.bak}
sed -i '24 a zone "benet.com" IN {\n\ttype master;\n\tfile "benet.com.zone";\n\tallow-update { none;};\n};\n' /etc/named.rfc1912.zones
cp -p /var/named/named.localhost /var/named/benet.com.zone
sed -i -e '2 s/rname.invalid./admin/' -e '9 s/127.0.0.1/'$LAN_IP'/' -e '$a www IN A '$LAN_IP'' -e '10d' /var/named/benet.com.zonesystemctl restart named

2.为虚拟主机准备网页文档

mkdir -p /var/www/html/benet
mkdir -p /var/www/html/accp
echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

 3.添加虚拟主机配置

 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf   #源码编译安装的虚拟主机配置文件路径

<VirtualHost 192.168.47.20:80>     设置虚拟主机的IP和端口# ServerAdmin webmaster@dummy-host.example.com    设置管理员邮箱,这行可忽略#DocumentRoot "/usr/local/httpd/docs/dummy-host.example.com"DocumentRoot "/var/www/html/accp"              设置网站根目录# ServerName dummy-host.example.comServerName www.accp.cpm                 设置Web站点的完整域名(主机名+域名)#ServerAlias www.dummy-host.example.comErrorLog "logs/accp.com-error_log"        设置错误日志文件的路径CustomLog "logs/accp.com-access_log" common  设置访问日志文件的路径
</VirtualHost><VirtualHost 192.168.47.20:80>#ServerAdmin webmaster@dummy-host2.example.com#DocumentRoot "/usr/local/httpd/docs/dummy-host2.example.com"DocumentRoot "/var/www/html/benet"ServerName www.benet.com# ErrorLog "logs/dummy-host2.example.com-error_log"# CustomLog "logs/dummy-host2.example.com-access_log" commonErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost>

 4.设置访问控制

vim /usr/local/httpd/conf/httpd.conf        

<Directory "/var/www/html">AllowOverride NoneOptions NoneRequire all granted
</Directory>

5.加载独立的配置文件

vim /usr/local/httpd/conf/httpd.conf                        #源码编译安装的httpd服务主配置文件路径
--483行--取消注释
Include conf/extra/httpd-vhosts.conf        

httpd -t    

systemctl restart named

 6.在客户机中访问虚拟 Web 主机

 

 基于IP地址的虚拟主机

1.添加一个虚拟网卡

[root@cxx ~]# ifconfig ens33:1 192.168.47.210/24
[root@cxx ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.47.20  netmask 255.255.255.0  broadcast 192.168.47.255inet6 fe80::7968:1e8f:6cd7:6859  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:e1:93:33  txqueuelen 1000  (Ethernet)RX packets 998  bytes 84230 (82.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 566  bytes 57523 (56.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.47.210  netmask 255.255.255.0  broadcast 192.168.47.255ether 00:0c:29:e1:93:33  txqueuelen 1000  (Ethernet)

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

[root@cxx ~]# cd /usr/local/httpd/conf/extra/   
[root@cxx extra]# ls
httpd-autoindex.conf  httpd-languages.conf           httpd-ssl.conf
httpd-dav.conf        httpd-manual.conf              httpd-userdir.conf
httpd-default.conf    httpd-mpm.conf                 httpd-vhosts.conf
httpd-info.conf       httpd-multilang-errordoc.conf  proxy-html.conf
[root@cxx extra]# vim httpd-vhosts.conf

<VirtualHost 192.168.47.20:80># ServerAdmin webmaster@dummy-host.example.com#DocumentRoot "/usr/local/httpd/docs/dummy-host.example.com"DocumentRoot "/var/www/html/accp"# ServerName dummy-host.example.comServerName www.accp.cpm#ServerAlias www.dummy-host.example.comErrorLog "logs/accp.com-error_log"CustomLog "logs/accp.com-access_log" common
</VirtualHost><VirtualHost 192.168.47.210:80>     修改IP地址#ServerAdmin webmaster@dummy-host2.example.com#DocumentRoot "/usr/local/httpd/docs/dummy-host2.example.com"DocumentRoot "/var/www/html/benet"ServerName www.benet.com# ErrorLog "logs/dummy-host2.example.com-error_log"# CustomLog "logs/dummy-host2.example.com-access_log" commonErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost>

3.修改主配置文件

root@cxx ~]# cd /usr/local/httpd/conf/
[root@cxx conf]# ls
extra  httpd.conf  httpd.conf.bak  magic  mime.types  original
[root@cxx conf]# vim httpd.conf

[root@cxx conf]# systemctl restart httpd

 4.在客户机中浏览器访问虚拟 Web 主机

 

 基于端口的虚拟主机

1.修改虚拟主机配置

[root@cxx conf]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.47.20:666>   同一IP不同端口# ServerAdmin webmaster@dummy-host.example.com#DocumentRoot "/usr/local/httpd/docs/dummy-host.example.com"DocumentRoot "/var/www/html/accp"# ServerName dummy-host.example.comServerName www.accp.cpm#ServerAlias www.dummy-host.example.comErrorLog "logs/accp.com-error_log"CustomLog "logs/accp.com-access_log" common
</VirtualHost><VirtualHost 192.168.47.20:888>  修改端口#ServerAdmin webmaster@dummy-host2.example.com#DocumentRoot "/usr/local/httpd/docs/dummy-host2.example.com"DocumentRoot "/var/www/html/benet"ServerName www.benet.com# ErrorLog "logs/dummy-host2.example.com-error_log"# CustomLog "logs/dummy-host2.example.com-access_log" commonErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost>

 2.修改主机主配置文件

[root@cxx conf]# vim /usr/local/httpd/conf/httpd.conf

51 #Listen 12.34.56.78:80 52 Listen 192.168.47.20:666   修改端口53 Listen 192.168.47.20:888   同一IP不同端口54         55 #      

 3.验证

[root@cxx conf]# systemctl restart httpd
[root@cxx conf]# netstat -lntp | grep httpd
tcp        0      0 192.168.47.20:888       0.0.0.0:*               LISTEN      3690/httpd          
tcp        0      0 192.168.47.20:666       0.0.0.0:*               LISTEN      3690/httpd          

 

 

 Apache 连接保持

vim /usr/local/httpd/conf/extra/httpd-default.conf

KeepAlive On            #设置是否打开连接保持功能,后面接OFF表示关闭,接ON表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。

MaxKeepAliveRequests 100        #用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。

KeepAliveTimeout 5        #设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源。
注意:要想支持httpd-default,conf的配置文件,需要在主配置文件中开启服务,并systemctl restart httpd 重启加载下

 构建Web虚拟目录与用户授权限制

1.查看默认根目录是哪个

[root@cxx htdocs]# pwd
/usr/local/httpd/htdocs[root@cxx htdocs]# mkdir file
[root@cxx htdocs]# ls
bbs  file  index.php
[root@cxx htdocs]# echo '<h1>nihao everyone!</h1>' > file/hello.html
[root@cxx htdocs]# ls
bbs  file  index.php[root@cxx htdocs]# cat file/hello.html 
<h1>nihao everyone!</h1>[root@cxx conf]# systemctl restart httpd
[root@cxx conf]# netstat -lntp | grep httpd
tcp        0      0 192.168.47.20:80        0.0.0.0:*               LISTEN      4304/http

 2.创建虚拟目录

# vim /usr/local/httpd/conf/httpd.conf  在主配置文件中添加虚拟目录

[root@cxx htdocs]# cd /var/www/html/
[root@cxx html]# ls
accp  benet
[root@cxx html]# mkdir file
[root@cxx html]# ls
accp  benet  file
[root@cxx html]# echo '<h1>zhe shi xuni mulu! </h1>' > file/hello.html
[root@cxx html]# cat file/hello.html 
<h1>zhe shi xuni mulu! </h1>
[root@cxx html]# systemctl restart httpd

 3.用户授权限制

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

[root@cxx html]# htpasswd -c /usr/local/httpd/usrlist cx
New password: 
Re-type new password: 
Adding password for user cx
[root@cxx html]# cd /usr/local/httpd/
[root@cxx httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual  usrlist
[root@cxx httpd]# htpasswd ./usrlist zss
New password: 
Re-type new password: 
Adding password for user zss#-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。
[root@cxx httpd]# cat /usr/local/httpd/usrlist   #确认用户数据文件
cx:$apr1$v2WYMeOj$LephjHva/Qmj9EjG7N0IU.
zss:$apr1$IL.jo1Ks$COmLztjzATmyDo8N3l/0Y1

(2)添加用户授权配置

[root@cxx conf]# vim /usr/local/httpd/conf/httpd.conf  修改主配置文件<Directory "/var/www/html/file">  #设置虚拟目录配置区域AllowOverride NoneOptions NoneRequire valid-user         #开启用户认证,只有认证文件中的合法用户才能访问AuthName "hello somebody!"  #定义受保护的领域名称,会在认证对话框中显示AuthType Basic              #设置认证的类型,Basic表示基本认证AuthUserFile /usr/local/httpd/userlist #设置用于保存用户账号和密码的认证文件的路径# Require all granted
</Directory>Alias /file /var/www/html/file #设置虚拟目录的根目录,/file 为虚拟目录名称

(3)验证用户访问授权

ps:如果出现访问显示Internal Server Error,那就把主配置文件删除重新写

Apache 日志分割

使用Apache 自带 rotatelogs 分割工具,将 Apache 的日志进行按每天的日期自动分割。

[root@cxx httpd]# vim /usr/local/httpd/conf/httpd.conf
--275行--修改
275 #ErrorLog "logs/error_log"
276 ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
#分割错误日志
--305行--修改
305     #CustomLog "logs/access_log" common
306     CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined  #分割访问日志#开头的 | 为管道符号。
#-l选项表示使用本地时间为时间基准。
#86400表示一天,即每天生成一个新的日志文件。
mkdir /var/log/httpd			#创建分割后的日志文件保存目录systemctl restart httpd    

浏览器访问 

 

 

相关文章:

Apache 配置和应用

目录 构建虚拟 Web 主机 Options指令解释 Options指令常用选项 AllowOverride指令解释&#xff1a; 地址限制策略&#xff1a; httpd服务支持的虚拟主机类型包括以下三种: 基于域名的虚拟主机 1&#xff0e;为虚拟主机提供域名解析 2.为虚拟主机准备网页文档 3.添加虚拟…...

实现PyTorch/ONNX自定义节点操作的TensorRT部署

参考一 下面是基本步骤&#xff1a; 加载训练好的bev transformer网络权重参数&#xff1a; import torch from model import Modelmodel Model() model.load_state_dict(torch.load("path/to/weights"))定义新的自定义操作&#xff1a; import torch from torc…...

Shamir 秘密共享、GMW和BGW方案

一、Shamir秘密共享 Shamir秘密共享方案是一种将秘密拆分成多份并分配给多个参与者保存&#xff0c;只有在满足特定条件下才能恢复原始秘密的密码学方案。它具有良好的容错性、加法同态性和无条件安全性等特点。 具体地&#xff0c;Shamir秘密共享方案可以概括为以下步骤&…...

Day56【动态规划】583.两个字符串的删除操作、72.编辑距离

583.两个字符串的删除操作 力扣题目链接/文章讲解 视频讲解 1、确定 dp 数组下标及值含义 dp[i][j]&#xff1a;以下标 i 为结尾的字符串 word1&#xff0c;和以下标 j 为结尾的字符串 word2&#xff0c;想要达到相等&#xff0c;所需要删除元素的最少次数为 dp[i][j] 2、…...

Arnold图像置乱的MATLAB实现

这件事情的起因是这样的&#xff0c;我需要研究一下各种图像置乱的算法。然后在知乎上找到了一篇关于Arnold变化的文章&#xff0c;但是呢&#xff0c;这个人实际上是卖资料&#xff0c;代做大作业的。详细的代码根部不给你&#xff0c;则给我气坏了&#xff0c;必须要手动实现…...

ASP.NET Core

1. 入口文件 一个应用程序总有一个入口文件&#xff0c;是应用启动代码开始执行的地方&#xff0c;这里往往也会涉及到应用的各种配置。当我们接触到一个新框架的时候&#xff0c;可以从入口文件入手&#xff0c;了解入口文件&#xff0c;能够帮助我们更好地理解应用的相关配置…...

javascript基础二十二:举例说明你对尾递归的理解,有哪些应用场景

一、递归 递归&#xff08;英语&#xff1a;Recursion&#xff09; 在数学与计算机科学中&#xff0c;是指在函数的定义中使用函数自身的方法 在函数内部&#xff0c;可以调用其他函数。如果一个函数在内部调用自身本身&#xff0c;这个函数就是递归函数 其核心思想是把一个大型…...

hive中如何计算字符串中表达式

比如 select 1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 col ,1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 result \ 现在的需求式 给你一个字符串如上述col 你要算出result。 前提式 只有和-的运算&#xff0c;而且只有嵌套一次 -(4-3)没有 -(-4(3-(31)))嵌套多次。 第一步我们需要将运…...

如何将maven项目改为springboot项目?

将 Maven 项目转换为 Spring Boot 项目需要进行以下步骤&#xff1a; 1. 在 Maven 项目中添加 Spring Boot 的依赖。可以通过在 pom.xml 文件中添加以下依赖来实现&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>…...

Java与查找算法(5):哈希查找

一、哈希查找 哈希查找&#xff0c;也称为散列查找&#xff0c;是一种基于哈希表的查找算法。哈希表是一种数据结构&#xff0c;它将键&#xff08;key&#xff09;映射到值&#xff08;value&#xff09;&#xff0c;使得查找某个键对应的值的时间复杂度为O(1)。哈希查找的过…...

Vercel部署个人博客

vercel 部署静态资源网站极其方便简单&#xff0c;并且有可观的访问速度&#xff0c;最主要的是免费部署。 如果你还没有尝试的话&#xff0c;强烈建议去使用一下。 演示博客演示http://202271.xyz/?vercel vercel 介绍 注册账号 进入Vercel官网https://vercel.com&#x…...

【论文阅读】An Object SLAM Framework for Association, Mapping, and High-Level Tasks

一、系统概述 这篇文章是一个十分完整的物体级SLAM框架&#xff0c;偏重于建图及高层应用&#xff0c;在前端的部分使用了ORBSLAM作为基础框架&#xff0c;用于提供点云以及相机的位姿&#xff0c;需要注意的是&#xff0c;这篇文章使用的是相机&#xff0c;虽然用的是点云这个…...

《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透

四.客户端攻击 客户端攻击与服务端攻击有个显著不同的标识&#xff0c;就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出&#xff0c;而是需要结合一些社会工程学技巧&#xff0c;诱使客户端用户去访问这些恶意数据&#xff0c;间接发生攻击。 4.1客户…...

华为OD机试真题 Java 实现【Linux 发行版的数量】【2023Q1 100分】

一、题目描述 Linux 操作系统有多个发行版,distrowatch.com 提供了各个发行版的资料。这些发行版互相存在关联,例如 Ubuntu 基于 Debian 只开发而 Mint 又基于 Ubuntu 开发,那么我们认为 Mint 同 Debian 也存在关联。 发行版集是一个或多个相关存在关联的操作系统发行版,…...

VMware ESXi 8.0U1a macOS Unlocker OEM BIOS (标准版和厂商定制版)

VMware ESXi 8.0 Update 1a macOS Unlocker & OEM BIOS (标准版和厂商定制版) ESXi 8.0U1 标准版&#xff0c;Dell HPE 联想 浪潮 定制版 请访问原文链接&#xff1a; https://sysin.org/blog/vmware-esxi-8-u1-oem/&#xff0c;查看最新版。原创作品&#xff0c;转载请保…...

Effective STL_读书笔记

Effective STL 1. 容器条例01&#xff1a;慎重选择容器类型条例02&#xff1a;不要试图编写独立于容器类型的代码条例03&#xff1a;确保容器中对象的拷贝正确而高效条例04&#xff1a;调用empty而不是检查size()是否为空条例05&#xff1a;区间成员函数优先于与之对应的单元素…...

通过yum:mysql5.6-msyql5.7-mysql8.0升级之路

一 前言 mysql的yum源 https://dev.mysql.com/downloads/repo/yum/ https://dev.mysql.com/get/mysq57-community-release-el7-7.noarch.rpm服务器信息 2c2g40GB [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# una…...

C语言数据存储 — 整型篇

C语言数据存储 — 整型篇 前言1. 数据类型介绍1.1 类型的基本分类 2. 整型在内存中的存储2.1 原码、反码、补码2.1.1 为什么数据存放在内存中存放的是补码 2.2 大小端介绍2.2.1 什么是大小端&#xff1f;2.2.2 为什么有大端和小端&#xff1f;2.2.3 一道百度系统工程师笔试题 3…...

高级Excel功能教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Excel是办公室自动化中非常重要的一款软件&#xff0c;Excel函数则是Excel中的内置函数。Excel函数共包含11类&#xff0c;分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户…...

ChatGPT会取代低代码开发平台吗?

编程作为一种高端技能&#xff0c;向来是高收入高科技的代名词。近期&#xff0c;伴随着ChatGPT在全球的爆火&#xff0c;过去通过窗口“拖拉拽”的所见即所得方式的低代码开发模式&#xff0c;在更加智能和更低成本的AI搅局之下&#xff0c;又面临了更深层次的影响。 低代码平…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...

【技巧】dify前端源代码修改第一弹-增加tab页

回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码&#xff0c;在知识库增加一个tab页"HELLO WORLD"&#xff0c;完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...

C# WPF 左右布局实现学习笔记(1)

开发流程视频&#xff1a; https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码&#xff1a; GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用&#xff08;.NET Framework) 2.…...