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

面试点补充

目录

1. 搭建lnmp

Linux 系统基础命令

nginx相关命令

MySQL 相关命令

PHP 相关命令

 验证命令

下载并部署 Discuz! X3.4 论坛 到 Nginx 网站

2. 脑裂

2.1 脑裂的定义

2.2 脑裂产生的原因

1. 主备节点之间的心跳线中断

2. 优先级冲突

3. 系统或服务负载过高

2.3 如何避免脑裂


1. 搭建lnmp

Linux 系统基础命令

# 为编译安装PHP及其扩展模块安装必要的系统依赖库
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

nginx相关命令

# 安装和启动Nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx# 修改Nginx配置
vim /etc/nginx/nginx.conf
# 添加PHP支持:
location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;include        fastcgi_params;
}# 配置生效检查
nginx -t
systemctl restart nginx# 设置默认首页
vim /etc/nginx/nginx.conf
index index.html index.htm index.php;
nginx -s reload

 

MySQL 相关命令

# 配置MySQL仓库
tee /etc/yum.repos.d/mysql.repo <<EOF
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
EOF# 安装和启动MySQL
yum -y install mysql-community-server
systemctl start mysqld# 修改密码策略和设置新密码
grep password /var/log/mysqld.log
mysql -u root -p'自己的密码'
set global validate_password_policy=0;
set global validate_password_length=1;
alter user root@'localhost' identified by 'abc123';# 创建Discuz数据库和用户
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

PHP 相关命令

mkdir -p /data  
cd /data/
#下载php-7.1.10.tar.bz2
tar xf php-7.1.10.tar.bz2
cd php-7.1.10# 编译安装PHP
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
make -j2 && make install# 配置PHP环境
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
cp /data/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini# 修改php.ini关键参数
vim /usr/local/php/lib/php.ini
# 1170行:mysqli.default_socket = /var/lib/mysql/mysql.sock
# 939行:date.timezone = Asia/Shanghai# 配置PHP-FPM
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf  # 取消17行注释 pid = run/php-fpm.pid
cd php-fpm.d
cp www.conf.default www.conf
cp /data/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl daemon-reload
systemctl start php-fpm.service# 创建PHP测试页
vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>

 验证命令

# 测试PHP解析
192.168.52.101/index.php# 测试MySQL连接
vim /usr/share/nginx/html/index.php
<?php
$link=mysqli_connect('192.168.52.101','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

下载并部署 Discuz! X3.4 论坛 到 Nginx 网站

cd /data/
#下载Discuz! X3.4 UTF-8简体中文版(需确保服务器能访问外网)unzip Discuz_X3.4_SC_UTF8.zipcp -a dir_SC_UTF8/upload/ /usr/share/nginx/html/bbs
#将论坛程序复制到 Nginx 的默认网站目录cd /usr/share/nginx/html/bbs
chown -R nobody ./config/
chown -R nobody ./data/
chown -R nobody ./uc_client/
chown -R nobody ./uc_server/
#设置文件权限192.168.52.101/bbs/install
#访问安装页面

2. 脑裂

2.1 脑裂的定义

脑裂(Split-Brain)是指在高可用(HA)集群中,多个节点因通信中断,误判对方故障,导致同时激活并对外提供服务,从而引发数据冲突或服务混乱的现象。

就像是大脑被分裂成两部分,各自独立运作,无法协调一致。

2.2 脑裂产生的原因

1. 主备节点之间的心跳线中断

节点无法通过心跳(Heartbeat)检测到对方存活,各自认为对方宕机,触发资源抢占

2. 优先级冲突

主备节点优先级(priority)相同或配置不合理,导致抢占逻辑混乱。

3. 系统或服务负载过高

节点因 CPU、内存、磁盘 I/O 过载,无法及时响应心跳请求。

2.3 如何避免脑裂

  1. 合理配置心跳检测

    • 缩短 advert_int 间隔(如 1 秒),加快故障检测速度。

    • 结合多检测方式(如 ICMP + TCP 端口 + 应用层健康检查)。

  2. 明确优先级与非抢占模式

    • 主节点优先级显著高于备节点(如主 100,备 90)。

    • 使用 nopreempt 避免主节点恢复后强行夺回 VIP

http://www.xdnf.cn/news/7294.html

相关文章:

  • 【Vue】路由2——编程式路由导航、 两个新的生命周期钩子 以及 路由守卫、路由器的两种工作模式
  • 在Excel中使用函数公式时,常见错误对应不同的典型问题
  • 在 CentOS 7.9 上部署 node_exporter 并接入 Prometheus + Grafana 实现主机监控
  • 【Arm】应用ArmDS移植最小FreeRTOS系统
  • 利用ffmpeg截图和生成gif
  • FART 主动调用组件设计和源码分析
  • 【AWS入门】AWS身份验证和访问管理(IAM)
  • C#接口的setter或getter的访问性限制
  • ## Docker 中 Elasticsearch 启动失败:日志文件权限问题排查与解决
  • PYTHON训练营DAY30
  • Git基础面试题
  • Git冲突解决:从手足无措到游刃有余的蜕变之路
  • 动态IP技术在跨境电商中的创新应用与战略价值解析
  • Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
  • 基础深度补全模型DepthLab: From Partial to Complete
  • CRMEB多商户预约服务上门师傅端
  • Web漏洞扫描服务的特点与优势:守护数字时代的安全防线
  • 【盈达科技】AICC™系统:重新定义生成式AI时代的内容竞争力
  • 10.15 LangChain v0.3重磅升级:Tool Calling技术颠覆大模型工具调用,效率飙升300%!
  • JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received.
  • 一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式
  • 【框架安装】win10 配置安装GPU加速的tensorflow和keras教程
  • 3.QMainWindow菜单栏menu bar和工具栏tool bars
  • 分布式事务
  • SID 2025上的天马,用“好屏”技术重构产业叙事
  • 【NLP】36. 从指令微调到人类偏好:构建更有用的大语言模型
  • [Spring Boot]整合Java Mail实现Outlook发送邮件
  • 《AI高效运维体系建设创新》技术连载(四)
  • 数据库连接问题排查全攻略:从服务状态到网络配置的深度解析
  • PCL点云库点云数据处理入门系列教材目录(2025年5月更新....)