【Linux】LAMP集群分布式安全方案

LAMP集群分布式安全方案主要涉及确保Linux、Apache、MySQL和PHP(LAMP)组合构成的集群环境的安全性和稳定性。

  • 本次实验通过网络层安全对防火墙配置:使用防火墙(如iptables或firewalld)来限制对集群的访问,只允许必要的端口(如HTTP/HTTPS端口、SSH端口等)对外开放。

LAMP集群分布式安全方案

  • (一)Web 服务器
    • 1. 配置步骤+前期准备
      • 1.1 修改IP和主机名
      • 1.2 关闭防火墙和SELinux
      • 1.3 修改ssh服务的端口并进行远程连接
    • 2. 安装httpd(Apache HTTP Server)
    • 3. 安装PHP及其相关扩展
    • 4. 安装phpMyAdmin并配置它以连接到MariaDB服务器
      • 4.1 安装phpMyAdmin并测试
      • 4.2 配置并连接到MariaDB服务器
  • (二)数据库服务器
    • 1. 配置步骤+前期准备
    • 2. 安装MariaDB。
    • 3. 创建一个数据库和相应的用户,并为该用户授予适当的权限。
    • 4. 确保防火墙和安全组规则允许来自Web服务器的数据库连接(通常是TCP端口3306)。
  • (三)测试机
    • 1. 修改IP和主机名、ssh的端口、关闭防火墙和SELinux
    • 2. 测试
  • (四)在网络层安全对防火墙配置
    • 1. 增加httpd端口
    • 2. 修改端口
    • 3. 防火墙安全设置
      • 3.1 web服务器防火墙配置
      • 3.2 数据库防火墙配置
      • 3.3 sshd防火墙配置

搭建LANP集群

ssh port10022
ssh port10022
ssh port10022
测试机
web服务器
远程连接MobaXterm
数据库
通过80端口访问web服务器
测试机
httpd
php-fpm
phpmyadmin
数据库
hostnameip系统
ley-web10.0.0.99rhel-baseos-9.0-x86_64-dvd.iso
ley-mari10.0.0.110rhel-baseos-9.0-x86_64-dvd.iso
ley-test10.0.0.88rhel-baseos-9.0-x86_64-dvd.iso

(一)Web 服务器

1. 配置步骤+前期准备

httpd (Apache HTTP Server):这是一个流行的Web服务器软件,用于托管网站和提供HTTP服务。
PHP:PHP是一种用于Web开发的服务器端脚本语言。它允许您在HTML中嵌入代码来生成动态网页内容。
phpMyAdmin:phpMyAdmin是一个基于Web的MySQL管理工具,您可以使用它来管理MySQL或MariaDB数据库。它使用PHP编写,并通过Web服务器(如Apache)进行访问。

  • 安装httpd(Apache HTTP Server)。
    安装PHP及其相关扩展(如php-mysql,用于与数据库通信)。
    安装phpMyAdmin并配置它以连接到MariaDB服务器。
    配置Apache以支持PHP和phpMyAdmin(例如,通过.htaccess文件或httpd.conf)。
    确保防火墙和安全组规则允许对Web服务器的HTTP和HTTPS访问。

1.1 修改IP和主机名

[root@ley-306 ~]# hostnamectl set-hostname ley-web  //修改主机名
[root@ley-306 ~]# hostname
ley-web修改成ley-web,重启主机输入reboot生效

修改IP参考此博客固定IP地址配置

在这里插入图片描述

1.2 关闭防火墙和SELinux

[root@ley-web ~]# systemctl stop firewalld.service 
[root@ley-web ~]# vim /etc/selinux/config 
[root@ley-web ~]# systemctl disable firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.1、临时关闭:输入命令setenforce 0,重启系统后还会开启。 
2、永久关闭:输入命令vi /etc/selinux/config,SELINUX=enforcing改为SELINUX=disabled

在这里插入图片描述
在这里插入图片描述

1.3 修改ssh服务的端口并进行远程连接

[root@ley-web ~]# vim /etc/ssh/sshd_config
//编辑/etc/ssh/sshd_config,找到port,去掉“#”,将22改成1002
[root@ley-web ~]# systemctl restart sshd  //重启sshd服务
[root@ley-web ~]# netstat -tunlp | grep sshd
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      860/sshd: /usr/sbin 
tcp6       0      0 :::10022                :::*                    LISTEN      860/sshd: /usr/sbin 
  • 如果重启报错!!!

在这里插入图片描述

[root@ley-web ~]# yum -y install openssh   
//查看是否安装了openssh服务,安装完后重启reboot,就能成功修改sshd服务的端口
  • 远程连接,将默认端口22改成10022
    在这里插入图片描述

2. 安装httpd(Apache HTTP Server)

[root@ley-web ~]# yum -y install httpd   //安装
[root@ley-web ~]# systemctl start httpd   //启动httpd服务
[root@ley-web ~]# systemctl enable httpd	//开机自启动httpd服务

在这里插入图片描述

3. 安装PHP及其相关扩展

[root@ley-web ~]# yum install php php-mysqlnd php-fpm		//安装
[root@ley-web ~]# systemctl start php-fpm.service		//启动
[root@ley-web ~]# systemctl enable php-fpm.service		//开机自启
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

在这里插入图片描述

  • 测试php:创建一个PHP测试页面来验证LAMP服务器是否已正确安装和配置。在Apache的文档根目录(通常是/var/www/html/)中创建一个名为info.php的文件
[root@ley-web html]# systemctl restart httpd
[root@ley-web html]# cd
[root@ley-web ~]# systemctl restart httpd
[root@ley-web ~]# cd /var/www/html/
[root@ley-web html]# cat info.php
<?phpphpinfo();?>
[root@ley-web html]# systemctl restart httpd

在这里插入图片描述

  • 回到虚拟机进入火狐输入web服务器IP:10.0.0.99,测试http
    在这里插入图片描述
  • 输入10.0.0.99/info.php,测试php
    在这里插入图片描述
    测试成功!!!

4. 安装phpMyAdmin并配置它以连接到MariaDB服务器

4.1 安装phpMyAdmin并测试

[root@ley-web html]# cd   //在/root目录下获取压缩包
[root@ley-web ~]# wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz		
[root@ley-web ~]# tar -xvzf phpMyAdmin-latest-all-languages.tar.gz		//解压缩

在这里插入图片描述

[root@ley-web ~]# ls    //看到解压缩后phpMyAdmin-5.2.1-all-languages
[root@ley-web ~]# mv phpMyAdmin-5.2.1-all-languages phpMyAdmin   //对phpMyAdmin-5.2.1-all-languages重命名为phpMyAdmin
[root@ley-web ~]# ls   //查看到phpMyAdmin
[root@ley-web ~]# mv phpMyAdmin /var/www/html/
//将其移到/var/www/html/目录下

在这里插入图片描述

[root@ley-web html]# systemctl restart httpd
[root@ley-web html]# systemctl restart php-fpm
  • 输入10.0.0.99/phpMyAdmin/index.php,测试成功!!!
  • 在这里插入图片描述

报错!!!

    • 输入10.0.0.99/phpMyAdmin/index.php,出现空白界面
[root@ley-web httpd]# yum -y update   //更新,再尝试重启服务,刷新页面就能成功!
[root@ley-web html]# systemctl restart httpd
[root@ley-web html]# systemctl restart php-fpm

4.2 配置并连接到MariaDB服务器

[root@ley-web ~]# cd /var/www/html
[root@ley-web html]# ls
info.php  phpMyAdmin
[root@ley-web html]# cd phpMyAdmin/
[root@ley-web phpMyAdmin]# ls
//如果不是config.inc.php,而是config.sample.inc.php,就将文件改成config.inc.php
[root@ley-web phpMyAdmin]# vim config.inc.php
$cfg['Servers'][$i]['host'] = '10.0.0.110';		// 如果你的数据库服务器在另一台机器上,这里改为该机器的 IP 或域名
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['user'] = 'ley'; // 这里填入你的 MySQL/MariaDB 用户名
$cfg['Servers'][$i]['password'] = '123456'; // 这里填入你的 MySQL/MariaDB 密码
$cfg['Servers'][$i]['port'] = '3306'; // 默认 MariaDB/MySQL 端口是 3306
$cfg['Servers'][$i]['socket'] = ''; // 如果你的服务器使用 socket 连接,这里指定 socket 路径

在这里插入图片描述
在这里插入图片描述

[root@ley-web phpMyAdmin]# systemctl restart httpd.service
[root@ley-web phpMyAdmin]# systemctl restart php-fpm.service

(二)数据库服务器

1. 配置步骤+前期准备

安装MariaDB。
配置MariaDB以允许来自Web服务器的连接(修改my.cnf或mariadb.cnf配置文件中的bind-address)。
创建一个数据库和相应的用户,并为该用户授予适当的权限。
确保防火墙和安全组规则允许来自Web服务器的数据库连接(通常是TCP端口3306)。

  • IP和ssh的端口设为10022,操作如web服务器
    并进行远程连接
    在这里插入图片描述
    在这里插入图片描述
  • 关闭防火墙和SELinux
# systemctl stop firewalld.service 
# vim /etc/selinux/config 
# systemctl disable firewalld.service 
1、临时关闭:输入命令setenforce 0,重启系统后还会开启。 
2、永久关闭:输入命令vi /etc/selinux/config,SELINUX=enforcing改为SELINUX=disabled

2. 安装MariaDB。

[root@ley-mari ~]# yum -y install mariadb-server
[root@ley-mari ~]# systemctl start mariadb.service    //启动
[root@ley-mari ~]# systemctl enable mariadb.service		//开机自启

在这里插入图片描述

3. 创建一个数据库和相应的用户,并为该用户授予适当的权限。

[root@ley-mari ~]# mysql_secure_installation
//更改root用户密码,并允许远程登录

在这里插入图片描述
在这里插入图片描述

[root@ley-mari ~]# mysql -u root -p
Enter password:				//输入root用户密码
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.5.22-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> SELECT User, Host FROM mysql.user;			//查看MariaDB中的所有用户,可以执行SQL查询
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
3 rows in set (0.001 sec)MariaDB [(none)]> CREATE USER 'ley'@'10.0.0.99' IDENTIFIED BY '123456';			//创建一个新用户并为其设置密码,可以使用CREATE USER语句
Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> GRANT ALL PRIVILEGES ON mysql.* TO 'ley'@'10.0.0.99';		//使用GRANT语句为用户授予权限
Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> FLUSH PRIVILEGES;			//刷新权限后退出
Query OK, 0 rows affected (0.000 sec)MariaDB [(none)]> \q
Bye

在这里插入图片描述

  • 测试:输入http://10.0.0.99/phpMyAdmin/index.php
    通过 web 浏览器访问 phpMyAdmin,并使用你配置的用户名和密码登录到 MariaDB 数据库。
    在这里插入图片描述

4. 确保防火墙和安全组规则允许来自Web服务器的数据库连接(通常是TCP端口3306)。

确保防火墙和安全组规则允许对Web服务器的HTTP和HTTPS访问。

(三)测试机

1. 修改IP和主机名、ssh的端口、关闭防火墙和SELinux

操作如上

在这里插入图片描述

  • 关闭防火墙和SELinux
# systemctl stop firewalld.service 
# vim /etc/selinux/config 
# systemctl disable firewalld.service 
1、临时关闭:输入命令setenforce 0,重启系统后还会开启。 
2、永久关闭:输入命令vi /etc/selinux/config,SELINUX=enforcing改为SELINUX=disabled

2. 测试

http://10.0.0.99/phpMyAdmin/index.php
输入账号和密码

在这里插入图片描述

在此LAMP集群搭建完毕!!!

(四)在网络层安全对防火墙配置

上面的LAMP集群搭建操作是在防火墙关闭的情况下,而LAMP集群分布式安全方案主要涉及确保Linux、Apache、MySQL和PHP(LAMP)组合构成的集群环境的安全性和稳定性。

  • 开启三台主机的防火墙,通过网络层安全对防火墙配置,使用防火墙(如iptables或firewalld)来限制对集群的访问,只允许必要的端口(如HTTP/HTTPS端口、SSH端口等)对外开放。
  • 为了使用防火墙(如iptables或firewalld)来限制对集群的访问,我们为httpd增加两个端口8080和10080,修改mariadb的端口为30306,而且三台主机在同一个网段可以通过ssh互相访问

实验要求

  1. 长方形内的服务在web服务器已经搭好了,在httpd增加至三个端口中,只允许10080端口访问web服务器,而web服务器也只能通过30306端口访问数据库
只通过10080端口访问web服务器
只通过30306端口访问数据库服务器
测试机
httpd
php-fpm
phpmyadmin
数据库
  1. 配置防火墙,阻止三台主机ssh互相访问
禁ssh
禁ssh
ssh port10022
禁ssh
禁ssh
ssh port10022
ssh port10022
测试机
web服务器
远程连接MobaXterm
数据库

1. 增加httpd端口

[root@ley-web httpd]# vim /etc/httpd/conf/httpd.conf
//增加httpd端口
Listen 8080
Listen 10080
[root@ley-web httpd]# systemctl restart httpd		//重启httpd服务

在这里插入图片描述

  • 测试:10080端口和8080端口是否可以访问

http://10.0.0.99:80/phpMyAdmin/index.php
在这里插入图片描述

http://10.0.0.99:8080/phpMyAdmin/index.php
在这里插入图片描述

http://10.0.0.99:10080/phpMyAdmin/index.php
在这里插入图片描述

  • 报错:如果在火狐访问phpMyAdmin出现拒绝访问,如下图所示。是火狐启动了安全机制,我们要修改火狐设置。
    在这里插入图片描述
    在火狐输入about:config,点击Accept the Risk and Continue
    在这里插入图片描述
    输入network.security.ports.banned.override,选择String
    在这里插入图片描述
    点击加号键,将需访问网站的端口号添加8080和10080端口,中间用逗号隔开
    在这里插入图片描述
    刷新http://10.0.0.99:10080/phpMyAdmin/index.php网页,就能成功访问了!

2. 修改端口

  • 在数据库中
[root@ley-mari ~]# cd /etc/my.cnf.d/
[root@ley-mari my.cnf.d]# ls
auth_gssapi.cnf  client.cnf  enable_encryption.preset  mariadb-server.cnf  mysql-clients.cnf  spider.cnf
[root@ley-mari my.cnf.d]# vim mariadb-server.cnf
[root@ley-mari my.cnf.d]# systemctl restart mariadb.service
[root@ley-mari my.cnf.d]# netstat -tunlp | grep mariadb
tcp6       0      0 :::30306                :::*                    LISTEN      2975/mariadbd
//30306设置成功

在这里插入图片描述

  • 在phpmyadmin中
[root@ley-web httpd]# vim /var/www/html/phpMyAdmin/config.inc.php  //将port改成30306

在这里插入图片描述

3. 防火墙安全设置

现在端口设置完成了,我们要打开防火墙,远程连接可能会断开,我们在本机操作,使用防火墙(如iptables或firewalld)来限制对集群的访问

3.1 web服务器防火墙配置

httpd有三个端口,通过防火墙设置只允许10080对集群进行访问,同时禁止80和8080端口访问。

//启动防火墙并设置开机自启
[root@ley-web ~]# systemctl start firewalld.service 
[root@ley-web ~]# systemctl restart firewalld.service [root@ley-web ~]# firewall-cmd --list-all[root@ley-web ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.88" port protocol="tcp" port="10080" accept'			//允许测试机IP通过10080端口访问httpd
success
[root@ley-web ~]# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.88" port protocol="tcp" port="80" reject'		//拒绝测试机通过80端口访问httpd
success
[root@ley-web ~]# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.88" port protocol="tcp" port="8080" reject'		//拒绝测试机通过8080端口访问httpd
success
[root@ley-web ~]# firewall-cmd --reload		//重新加载firewalld
success
[root@ley-web ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="10.0.0.88" port port="10080" protocol="tcp" acceptrule family="ipv4" source address="10.0.0.88" port port="80" protocol="tcp" rejectrule family="ipv4" source address="10.0.0.88" port port="8080" protocol="tcp" reject//设置成功!

在这里插入图片描述

  • 测试
  • 在测试机访问通过三个端口访问phpMyAdmin,只有10080端口访问成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 数据库防火墙配置

//开启防火墙并设置开机自启
[root@ley-mari ~]# systemctl start firewalld.service 
[root@ley-mari ~]# systemctl restart firewalld.service 
[root@ley-mari ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="30306" accept'		允许web服务器通过30306端口访问数据库
success
[root@ley-mari ~]# firewall-cmd --reload
success
[root@ley-mari ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="10.0.0.99" port port="30306" protocol="tcp" accept
  • 测试
    通过10080端口,登录phpMyadmin界面,访问数据库

在这里插入图片描述

3.3 sshd防火墙配置

此时的所有的远程连接应该已经断开,因为防火墙开启限制了sshd服务的端口10022

[root@ley-web ~]# firewall-cmd --add-port=10022/tcp --permanent			//允许10022端口访问
success
[root@ley-web ~]# firewall-cmd --reload
success
[root@ley-web ~]# firewall-cmd --list-all

在这里插入图片描述
设置完成后,远程连接就能成功了,数据库和测试机也同理!

三台主机之间在同一个网段,可以通过ssh服务互相登录,如同下图所示,主机之间可以互相登录,这不安全,我们要在三台主机之间设置拒绝登录
在这里插入图片描述

[root@ley-web ~]# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.110" port protocol="tcp" port="10022" reject'
success
[root@ley-web ~]# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.88" port protocol="tcp" port="10022" reject'
success
[root@ley-web ~]# firewall-cmd --reload
success
[root@ley-web ~]# firewall-cmd --list-all

在这里插入图片描述

[root@ley-mari ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="10022" reject'
success
[root@ley-mari ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.88" port protocol="tcp" port="10022" reject'
success
[root@ley-mari ~]# firewall-cmd --reload
success
[root@ley-mari ~]# firewall-cmd --list-all

在这里插入图片描述

[root@ley-test ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="10022" reject'
[root@ley-test ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.110" port protocol="tcp" port="10022" reject'
[root@ley-test ~]# firewall-cmd --reload
success
[root@ley-test ~]# firewall-cmd --list-all

在这里插入图片描述

  • 测试
    拒绝访问
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

防火墙安全策略配置完成!!!

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

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

相关文章

[集群聊天服务器]----(五)User类、UserModel类

接着上文[集群聊天服务器]----(四)MySQL数据库模块&#xff0c;接下来我们对User类、UserModel类进行剖析&#xff0c;User表和UserModel类是项目最基本也是最重要的部分&#xff0c;通过它我们对用户的id&#xff0c;用户名&#xff0c;密码&#xff0c;状态相关信息进行存储&…

uniapp+canvas实现逐字手写效果

在移动端使用 UniApp 进行逐字手写的功能。用户可以在一个 inputCanvas 上书写单个字&#xff0c;然后在特定时间后将这个字添加到 outputCanvas 上&#xff0c;形成一个逐字的手写效果。用户还可以保存整幅图像或者撤销上一个添加的字。 初始化 Canvas&#xff1a; 使用 uni.c…

Top3专业课150满分,怎么考的?

这个系列会邀请上岸学长学姐进行经验分享~ 今天经验分享的同学是小马哥上海交大819的全程班学员&#xff0c;专业课150分满分&#xff0c;这位同学也是819期末考试的第一名&#xff0c;非常厉害&#xff01;大家吸吸欧气&#xff01; 初试成绩单 前言 先介绍下自己&#xff0…

新火种AI|复旦团队在“冷冻人脑”领域获得重大进展!人工智能是否会对此形成助力?

​在低温医学领域&#xff0c;“冷冻人脑”技术的研究和突破既是重点&#xff0c;也是难点。因为这项技术关乎着人类是否可以取得一个令人瞩目的突破——人类的生命是否能够得到延续。 早几年&#xff0c;诸如“利用人体冷冻技术将身患绝症的病人保存十几年&#xff0c;几十年…

C# 文件清理

/// <summary>/// 定期清除文件/// </summary>/// <param name"fileDirect">文件夹</param>/// <param name"postFix">文件后缀</param>/// <param name"saveDay">保存天数</param>private voi…

IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战

文章目录 Baidu Comate介绍安装配置体验安装插件配置体验注释生成代码技术问答 实战设计表生成代码导入数据 总结 Baidu Comate介绍 在科技互联网飞速发展的今天&#xff0c;百度凭借其深厚的技术积累和创新能力&#xff0c;推出了一款名为Baidu Comate智能代码助手的产品。该…

文章解读与仿真程序复现思路——电力系统保护与控制EI\CSCD\北大核心《基于改进粒子滤波的锂离子电池剩余寿命预测 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Windows 10x64 IoT Enterprise LTSC 2021

打KB5036892补丁&#xff0c;升级版本19044.4291&#xff0c;打简体中文补丁包&#xff0c;系统后续升级需要升级英文补丁&#xff0c;需要重新打中文补丁包&#xff0c;系统禁用升级。禁用打印机服务&#xff0c;需要安装打印机的自行打开服务Print Spooler。 链接&#xff1a…

【SqL】数据库脚本编写规范和指南

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

Spring AOP的实操 + 原理(动态代理)

1 什么是Spring AOP 要想知道Spring AOP那必然是是要先知道什么是AOP了: AOP&#xff0c;全称为 Aspect-Oriented Programming&#xff08;面向切面编程&#xff09;&#xff0c;是一种编程范式&#xff0c;用于提高代码的模块化&#xff0c;特别是横切关注点&#xff08;cros…

钡铼BL205分布式IO在精密机械加工自动化中的精准控制OPC UA

随着工业自动化技术的不断发展&#xff0c;精密机械加工领域对于高效、精准的控制需求日益增加。在这一背景下&#xff0c;钡铼BL205分布式IO的出现为精密机械加工自动化注入了新的活力和可能性。本文将探讨钡铼BL205分布式IO在精密机械加工自动化中的应用&#xff0c;尤其是其…

使用Python探究OpenAI API

谁没听说过OpenAI?这家人工智能研究实验室因其著名的产品ChatGPT而改变了世界。它改变了AI实施领域&#xff0c;许多公司现在急于成为下一大热点。 尽管竞争激烈&#xff0c;OpenAI仍然是任何生成式AI业务需求的首选公司&#xff0c;因为它拥有最好的模型和持续的支持。该公司…

在使用LabVIEW控制多个串口设备进行数据读取时,读取时间过长

在使用LabVIEW控制多个串口设备进行数据读取时&#xff0c;如果发现数据更新时间超过5秒&#xff0c;可以从以下几个方面进行分析和解决&#xff1a; 1. 串口配置与通信参数 确保每个串口的通信参数&#xff08;波特率、数据位、停止位、校验位等&#xff09;配置正确&#x…

【Spring Security系列】权限之旅:SpringSecurity小程序登录深度探索

作者&#xff1a;后端小肥肠 创作不易&#xff0c;未经允许严禁转载。 姊妹篇&#xff1a; 【Spring Security系列】Spring SecurityJWTRedis实现用户认证登录及登出_spring security jwt 退出登录-CSDN博客 1. 前言 欢迎来到【Spring Security系列】&#xff01;在当今数字化…

识别剪贴板的内容并且添加磁力头

有时候复制的磁力链接并没有磁力头&#xff0c;而只有后面的内容&#xff0c;这个时候就必须给磁力链接添加开头magnet:xturn:btih:下载软件才能识别&#xff0c;如果经常需要这么做比较麻烦&#xff0c;于是我写了一个自动添加磁力头的小软件&#xff0c;运行即可自动添加&…

记录一个写SpringBoot中Hive数据可以正常提取但无法存到MySQL的bug

【背景】 我正在用SpringBoot框架写一个数据治理项目&#xff0c;目前所处阶段是将hive和hdfs中的元数据提取出来&#xff0c;存储到MySQL中&#xff0c;我的hive和hdfs上的数据存储在三台Linux服务器上&#xff08;hadoop102-104&#xff09;&#xff0c;MySQL在我本地Window…

JAVA 转 Golang——速通 Golang 基础

文章目录 1. 前言&#xff1a;2. go的下载与配置3. Golang 目录结构4. Golang 的基础语法4.1. 变量声明4.2. 输入输出4.3. 条件控制4.4. 数组和切片4.5. 映射表 1. 前言&#xff1a; 根据鼠鼠的实习投递经历&#xff0c;由于越来越多中大型公司都使用 Golang&#xff0c;在现在…

vue + SpringBoot + flowable 实现工作流审批功能 (流程图部署)

目录 搭建前端vue项目 vue init webpack project_name 初始化项目 导入 element-ui 框架 npm install element-ui -s 设置 element-ui 全局配置 编辑 main.js 文件 import ElementUI from "element-ui"; // ui框架导入 import element-ui/lib/theme-chal…

文心大模型4.0创建智能体:资深研发专家一对一辅导

目录 前言 一、什么是文心智能体平台&#xff1f; 1、通过平台能做什么 2、平台的优势 3、智能体类型 二、如何访问和使用这个智能体&#xff1f; 1、零代码开发&#xff1a;一句话创建智能体 2、资深研发专家一对一辅导智能体介绍 总结 前言 在当今快节奏和高度竞争的…

Sping源码(八)—registerBeanPostProcessors

序言 之前我们用大量的篇幅介绍过invokeBeanFactoryPostProcessors()方法的执行流程。 而invokeBeanFactoryPostProcessors的主要逻辑就是遍历执行实现了BeanDefinitionRegistryPostProcesso类(主要是针对BeanDefinition的操作)和BeanFactoryPostProcessor(主要针对BeanFacrot…