简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索

活动公告

通知:为庆祝网站一周年,将在5.1日与5.2日开放注册,具体信息请见后续详细公告
04-22 00:04
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Rocky Linux 8系统搭建网站实战教程 从基础环境配置到Web服务部署再到安全防护一步步教你打造稳定高效的企业网站平台

SunJu_FaceMall

3万

主题

1158

科技点

3万

积分

白金月票

碾压王

积分
32796

立华奏

发表于 2025-10-3 19:10:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Rocky Linux作为CentOS的替代品,已经成为企业级服务器操作系统的热门选择。它继承了RHEL的稳定性和安全性,同时提供了长期支持。本教程将详细介绍如何在Rocky Linux 8系统上从零开始搭建一个稳定、高效且安全的企业网站平台。我们将涵盖基础环境配置、Web服务部署以及安全防护等关键环节,帮助您构建一个可靠的企业级网站基础设施。

一、基础环境配置

1. 系统安装与初始化设置

首先,确保您已经完成了Rocky Linux 8的基本安装。安装完成后,我们需要进行一些初始化设置。

登录系统后,首先更新系统到最新状态:
  1. sudo dnf update -y
复制代码

出于安全考虑,不建议直接使用root用户进行日常操作:
  1. # 创建新用户
  2. sudo adduser webadmin
  3. # 设置密码
  4. sudo passwd webadmin
  5. # 为新用户添加sudo权限
  6. sudo usermod -aG wheel webadmin
复制代码

设置一个合适的主机名:
  1. sudo hostnamectl set-hostname webserver.example.com
复制代码

2. 网络配置

编辑网络配置文件:
  1. sudo nmcli connection modify enp1s0 ipv4.addresses 192.168.1.100/24
  2. sudo nmcli connection modify enp1s0 ipv4.gateway 192.168.1.1
  3. sudo nmcli connection modify enp1s0 ipv4.dns "8.8.8.8 8.8.4.4"
  4. sudo nmcli connection modify enp1s0 ipv4.method manual
  5. sudo nmcli connection up enp1s0
复制代码
  1. ping -c 4 google.com
复制代码

3. 系统更新与基本工具安装

EPEL(Extra Packages for Enterprise Linux)提供了许多额外的软件包:
  1. sudo dnf install epel-release -y
复制代码
  1. sudo dnf install -y vim wget curl telnet net-tools htop unzip bzip2
复制代码
  1. sudo dnf install chrony -y
  2. sudo systemctl start chronyd
  3. sudo systemctl enable chronyd
  4. sudo timedatectl set-ntp true
复制代码

4. 防火墙与SELinux配置
  1. # 启动并启用防火墙
  2. sudo systemctl start firewalld
  3. sudo systemctl enable firewalld
  4. # 查看防火墙状态
  5. sudo firewall-cmd --state
  6. # 开放HTTP和HTTPS端口
  7. sudo firewall-cmd --permanent --add-service=http
  8. sudo firewall-cmd --permanent --add-service=https
  9. sudo firewall-cmd --reload
  10. # 查看已开放的端口
  11. sudo firewall-cmd --list-all
复制代码

SELinux是Linux系统的重要安全组件,建议保持启用状态:
  1. # 查看SELinux状态
  2. sudo getenforce
  3. # 如果不是Enforcing状态,设置为Enforcing
  4. sudo setenforce 1
  5. # 永久设置SELinux为Enforcing模式
  6. sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
复制代码

二、Web服务部署

1. LAMP环境搭建
  1. sudo dnf install -y httpd httpd-tools
复制代码
  1. sudo systemctl start httpd
  2. sudo systemctl enable httpd
复制代码
  1. sudo systemctl status httpd
复制代码
  1. sudo dnf install -y mariadb-server mariadb
复制代码
  1. sudo systemctl start mariadb
  2. sudo systemctl enable mariadb
复制代码
  1. sudo mysql_secure_installation
复制代码

按照提示设置root密码,移除匿名用户,禁止root远程登录等。
  1. sudo dnf install -y php php-cli php-mysqlnd php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip
复制代码
  1. sudo systemctl restart httpd
复制代码

创建一个PHP测试文件:
  1. echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
复制代码

然后访问http://your_server_ip/info.php查看PHP信息。

2. LEMP环境搭建(可选)

如果您更倾向于使用Nginx而不是Apache,可以按照以下步骤搭建LEMP环境。
  1. sudo dnf install -y nginx
复制代码
  1. sudo systemctl start nginx
  2. sudo systemctl enable nginx
复制代码
  1. sudo dnf install -y php-fpm php-mysqlnd php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip
复制代码

编辑PHP-FPM配置文件:
  1. sudo vi /etc/php-fpm.d/www.conf
复制代码

将以下行:
  1. user = apache
  2. group = apache
复制代码

修改为:
  1. user = nginx
  2. group = nginx
复制代码
  1. sudo systemctl start php-fpm
  2. sudo systemctl enable php-fpm
复制代码

创建一个新的Nginx配置文件:
  1. sudo vi /etc/nginx/conf.d/default.conf
复制代码

添加以下内容:
  1. server {
  2.     listen       80;
  3.     server_name  localhost;
  4.     root   /usr/share/nginx/html;
  5.     index  index.php index.html index.htm;
  6.     location / {
  7.         try_files $uri $uri/ /index.php?$query_string;
  8.     }
  9.     location ~ \.php$ {
  10.         fastcgi_pass   unix:/var/run/php-fpm/www.sock;
  11.         fastcgi_index  index.php;
  12.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  13.         include        fastcgi_params;
  14.     }
  15. }
复制代码
  1. sudo systemctl restart nginx
  2. sudo systemctl restart php-fpm
复制代码

创建一个PHP测试文件:
  1. echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
复制代码

然后访问http://your_server_ip/info.php查看PHP信息。

3. 数据库配置

登录MariaDB:
  1. mysql -u root -p
复制代码

创建数据库和用户:
  1. CREATE DATABASE website_db;
  2. CREATE USER 'website_user'@'localhost' IDENTIFIED BY 'strong_password';
  3. GRANT ALL PRIVILEGES ON website_db.* TO 'website_user'@'localhost';
  4. FLUSH PRIVILEGES;
  5. EXIT;
复制代码

编辑MariaDB配置文件:
  1. sudo vi /etc/my.cnf.d/mariadb-server.cnf
复制代码

在[mariadb]部分添加以下内容:
  1. innodb_buffer_pool_size = 2G
  2. innodb_log_file_size = 256M
  3. query_cache_type = 1
  4. query_cache_size = 128M
  5. query_cache_limit = 2M
  6. max_connections = 200
复制代码

根据您的服务器资源调整这些值。
  1. sudo systemctl restart mariadb
复制代码

4. Web服务器配置

为您的网站创建一个虚拟主机配置文件:
  1. sudo vi /etc/httpd/conf.d/example.com.conf
复制代码

添加以下内容:
  1. <VirtualHost *:80>
  2.     ServerName example.com
  3.     ServerAlias www.example.com
  4.     DocumentRoot /var/www/example.com/public_html
  5.     ErrorLog /var/log/httpd/example.com-error.log
  6.     CustomLog /var/log/httpd/example.com-access.log combined
  7.    
  8.     <Directory /var/www/example.com/public_html>
  9.         Options -Indexes +FollowSymLinks
  10.         AllowOverride All
  11.         Require all granted
  12.     </Directory>
  13. </VirtualHost>
复制代码
  1. sudo mkdir -p /var/www/example.com/public_html
  2. sudo chown -R apache:apache /var/www/example.com
  3. sudo chmod -R 755 /var/www/example.com
复制代码
  1. sudo systemctl restart httpd
复制代码

为您的网站创建一个虚拟主机配置文件:
  1. sudo vi /etc/nginx/conf.d/example.com.conf
复制代码

添加以下内容:
  1. server {
  2.     listen 80;
  3.     server_name example.com www.example.com;
  4.     root /var/www/example.com/public_html;
  5.     index index.php index.html index.htm;
  6.     location / {
  7.         try_files $uri $uri/ /index.php?$query_string;
  8.     }
  9.     location ~ \.php$ {
  10.         fastcgi_pass   unix:/var/run/php-fpm/www.sock;
  11.         fastcgi_index  index.php;
  12.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  13.         include        fastcgi_params;
  14.     }
  15.     location ~ /\.ht {
  16.         deny all;
  17.     }
  18. }
复制代码
  1. sudo mkdir -p /var/www/example.com/public_html
  2. sudo chown -R nginx:nginx /var/www/example.com
  3. sudo chmod -R 755 /var/www/example.com
复制代码
  1. sudo systemctl restart nginx
复制代码

三、网站部署

1. 域名配置

在您的域名注册商处设置DNS记录:
  1. A记录: example.com -> 您的服务器IP
  2. A记录: www.example.com -> 您的服务器IP
复制代码
  1. nslookup example.com
复制代码

2. SSL证书安装
  1. sudo dnf install -y certbot python3-certbot-apache
  2. # 如果使用Nginx,则安装:
  3. # sudo dnf install -y certbot python3-certbot-nginx
复制代码

对于Apache:
  1. sudo certbot --apache -d example.com -d www.example.com
复制代码

对于Nginx:
  1. sudo certbot --nginx -d example.com -d www.example.com
复制代码
  1. sudo crontab -e
复制代码

添加以下行:
  1. 0 0 * * * /usr/bin/certbot renew --quiet
复制代码

3. 网站文件上传与配置

您可以使用SCP、SFTP或FTP上传网站文件。以下是使用SCP的示例:
  1. scp -r /path/to/local/website/* webadmin@your_server_ip:/var/www/example.com/public_html/
复制代码
  1. sudo chown -R apache:apache /var/www/example.com/public_html
  2. # 如果使用Nginx:
  3. # sudo chown -R nginx:nginx /var/www/example.com/public_html
  4. sudo find /var/www/example.com/public_html -type d -exec chmod 755 {} \;
  5. sudo find /var/www/example.com/public_html -type f -exec chmod 644 {} \;
复制代码

根据您使用的网站系统(如WordPress、Joomla等),编辑相应的配置文件,设置数据库连接信息等。

4. 数据库导入与配置

如果您的网站需要导入现有数据库:
  1. mysql -u website_user -p website_db < /path/to/your/database.sql
复制代码

编辑网站的配置文件,设置数据库连接信息。例如,对于WordPress,编辑wp-config.php:
  1. define('DB_NAME', 'website_db');
  2. define('DB_USER', 'website_user');
  3. define('DB_PASSWORD', 'strong_password');
  4. define('DB_HOST', 'localhost');
复制代码

四、安全防护

1. 系统安全加固

编辑SSH配置文件:
  1. sudo vi /etc/ssh/sshd_config
复制代码

找到以下行并修改:
  1. PermitRootLogin no
复制代码
  1. sudo systemctl restart sshd
复制代码

在本地计算机生成SSH密钥对:
  1. ssh-keygen -t rsa -b 4096
复制代码

将公钥复制到服务器:
  1. ssh-copy-id webadmin@your_server_ip
复制代码

编辑SSH配置文件:
  1. sudo vi /etc/ssh/sshd_config
复制代码

找到以下行并修改:
  1. PasswordAuthentication no
复制代码
  1. sudo systemctl restart sshd
复制代码
  1. sudo dnf install -y fail2ban
  2. sudo systemctl start fail2ban
  3. sudo systemctl enable fail2ban
复制代码

创建Fail2Ban配置文件:
  1. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  2. sudo vi /etc/fail2ban/jail.local
复制代码

配置SSH保护:
  1. [sshd]
  2. enabled = true
  3. port = 22
  4. filter = sshd
  5. logpath = /var/log/secure
  6. maxretry = 3
  7. bantime = 3600
复制代码

重启Fail2Ban:
  1. sudo systemctl restart fail2ban
复制代码

2. Web服务器安全配置

编辑Apache配置文件:
  1. sudo vi /etc/httpd/conf/httpd.conf
复制代码

添加或修改以下设置:
  1. # 隐藏Apache版本信息
  2. ServerTokens Prod
  3. ServerSignature Off
  4. # 禁用目录列表
  5. Options -Indexes
  6. # 防止点击劫持
  7. Header always append X-Frame-Options SAMEORIGIN
  8. # 防止MIME类型混淆
  9. Header set X-Content-Type-Options: "nosniff"
  10. # 启用XSS保护
  11. Header set X-XSS-Protection "1; mode=block"
复制代码

编辑Nginx配置文件:
  1. sudo vi /etc/nginx/nginx.conf
复制代码

在http部分添加以下设置:
  1. # 隐藏Nginx版本信息
  2. server_tokens off;
  3. # 防止点击劫持
  4. add_header X-Frame-Options "SAMEORIGIN" always;
  5. # 防止MIME类型混淆
  6. add_header X-Content-Type-Options "nosniff" always;
  7. # 启用XSS保护
  8. add_header X-XSS-Protection "1; mode=block" always;
复制代码

编辑PHP配置文件:
  1. sudo vi /etc/php.ini
复制代码

修改以下设置:
  1. # 禁用危险函数
  2. disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  3. # 隐藏PHP版本信息
  4. expose_php = Off
  5. # 启用安全模式
  6. safe_mode = On
  7. # 限制文件上传
  8. upload_max_filesize = 2M
  9. max_file_uploads = 20
  10. # 禁用远程文件包含
  11. allow_url_fopen = Off
  12. allow_url_include = Off
复制代码

对于Apache:
  1. sudo systemctl restart httpd
复制代码

对于Nginx:
  1. sudo systemctl restart nginx
  2. sudo systemctl restart php-fpm
复制代码

3. 防火墙规则优化
  1. # 只允许特定IP访问SSH
  2. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_trusted_ip" service name="ssh" accept'
  3. sudo firewall-cmd --permanent --remove-service=ssh
  4. sudo firewall-cmd --reload
复制代码
  1. # 只允许特定IP访问HTTP/HTTPS(可选)
  2. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_trusted_ip" service name="http" accept'
  3. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_trusted_ip" service name="https" accept'
  4. sudo firewall-cmd --permanent --remove-service=http
  5. sudo firewall-cmd --permanent --remove-service=https
  6. sudo firewall-cmd --reload
复制代码
  1. # 限制每秒连接数
  2. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 80 -m connlimit --connlimit-above 100 -j DROP
  3. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 443 -m connlimit --connlimit-above 100 -j DROP
  4. # 限制每分钟新连接数
  5. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 80 -m recent --set
  6. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 80 -m recent --update --seconds 60 --hitcount 50 -j DROP
  7. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 443 -m recent --set
  8. sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 443 -m recent --update --seconds 60 --hitcount 50 -j DROP
  9. sudo firewall-cmd --reload
复制代码

4. 安全监控与日志分析
  1. sudo dnf install -y goaccess
复制代码

创建一个脚本分析Apache访问日志:
  1. sudo vi /usr/local/bin/analyze_logs.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. LOG_FILE="/var/log/httpd/example.com-access.log"
  3. OUTPUT_DIR="/var/www/html/reports"
  4. mkdir -p $OUTPUT_DIR
  5. goaccess $LOG_FILE -o $OUTPUT_DIR/report.html --real-time-html --daemon
复制代码

设置执行权限:
  1. sudo chmod +x /usr/local/bin/analyze_logs.sh
复制代码
  1. sudo crontab -e
复制代码

添加以下行:
  1. 0 0 * * * /usr/local/bin/analyze_logs.sh
复制代码
  1. sudo dnf install -y aide
复制代码
  1. sudo aide --init
  2. sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
复制代码
  1. sudo crontab -e
复制代码

添加以下行:
  1. 0 3 * * * /usr/sbin/aide --check
复制代码

五、性能优化

1. 服务器资源优化
  1. # 创建swap文件
  2. sudo fallocate -l 2G /swapfile
  3. sudo chmod 600 /swapfile
  4. sudo mkswap /swapfile
  5. sudo swapon /swapfile
  6. # 使swap永久生效
  7. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
复制代码

编辑sysctl配置文件:
  1. sudo vi /etc/sysctl.conf
复制代码

添加以下内容:
  1. # 增加文件描述符限制
  2. fs.file-max = 100000
  3. # 网络优化
  4. net.core.rmem_max = 16777216
  5. net.core.wmem_max = 16777216
  6. net.ipv4.tcp_rmem = 4096 87380 16777216
  7. net.ipv4.tcp_wmem = 4096 65536 16777216
  8. net.ipv4.tcp_congestion_control = cubic
  9. net.ipv4.tcp_tw_reuse = 1
  10. net.ipv4.ip_local_port_range = 10000 65535
  11. # 虚拟内存优化
  12. vm.swappiness = 10
  13. vm.dirty_ratio = 60
  14. vm.dirty_background_ratio = 2
复制代码

应用更改:
  1. sudo sysctl -p
复制代码

2. Web服务器性能调优

编辑Apache配置文件:
  1. sudo vi /etc/httpd/conf/httpd.conf
复制代码

修改以下设置:
  1. # 启用KeepAlive
  2. KeepAlive On
  3. MaxKeepAliveRequests 100
  4. KeepAliveTimeout 5
  5. # 调整MPM设置
  6. <IfModule prefork.c>
  7.     StartServers       8
  8.     MinSpareServers    5
  9.     MaxSpareServers   20
  10.     ServerLimit      256
  11.     MaxClients       256
  12.     MaxRequestsPerChild  4000
  13. </IfModule>
  14. # 启用缓存模块
  15. LoadModule cache_module modules/mod_cache.so
  16. LoadModule cache_disk_module modules/mod_cache_disk.so
  17. <IfModule mod_cache_disk.c>
  18.     CacheEnable disk /
  19.     CacheRoot /var/cache/httpd
  20.     CacheDirLevels 2
  21.     CacheDirLength 1
  22. </IfModule>
复制代码

编辑Nginx配置文件:
  1. sudo vi /etc/nginx/nginx.conf
复制代码

修改以下设置:
  1. # 工作进程数
  2. worker_processes auto;
  3. # 连接数
  4. worker_connections 1024;
  5. # 启用gzip压缩
  6. gzip on;
  7. gzip_vary on;
  8. gzip_min_length 10240;
  9. gzip_proxied expired no-cache no-store private must-revalidate max-age=0 auth;
  10. gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
  11. # 缓存配置
  12. open_file_cache max=2000 inactive=20s;
  13. open_file_cache_valid 60s;
  14. open_file_cache_min_uses 5;
  15. open_file_cache_errors off;
复制代码

编辑PHP配置文件:
  1. sudo vi /etc/php.ini
复制代码

修改以下设置:
  1. # 内存限制
  2. memory_limit = 256M
  3. # 执行时间
  4. max_execution_time = 30
  5. # 上传文件大小
  6. upload_max_filesize = 64M
  7. post_max_size = 64M
  8. # 启用OPcache
  9. opcache.enable=1
  10. opcache.memory_consumption=128
  11. opcache.max_accelerated_files=4000
  12. opcache.revalidate_freq=60
  13. opcache.fast_shutdown=1
  14. opcache.enable_file_override=0
  15. opcache.validate_timestamps=1
复制代码
  1. sudo dnf install -y php-opcache
  2. sudo systemctl restart httpd
  3. # 或
  4. sudo systemctl restart php-fpm
复制代码

3. 数据库性能优化

编辑MariaDB配置文件:
  1. sudo vi /etc/my.cnf.d/mariadb-server.cnf
复制代码

在[mariadb]部分添加以下内容:
  1. # 缓冲池大小(通常为系统内存的50-70%)
  2. innodb_buffer_pool_size = 4G
  3. # 日志文件大小
  4. innodb_log_file_size = 512M
  5. # 日志缓冲区大小
  6. innodb_log_buffer_size = 64M
  7. # 刷新日志策略
  8. innodb_flush_log_at_trx_commit = 2
  9. # 查询缓存
  10. query_cache_type = 1
  11. query_cache_size = 256M
  12. query_cache_limit = 4M
  13. # 连接数
  14. max_connections = 500
  15. # 表缓存
  16. table_open_cache = 2000
  17. # 临时表
  18. tmp_table_size = 256M
  19. max_heap_table_size = 256M
  20. # 线程缓存
  21. thread_cache_size = 16
  22. # 慢查询日志
  23. slow_query_log = 1
  24. slow_query_log_file = /var/log/mariadb/slow.log
  25. long_query_time = 2
复制代码
  1. sudo systemctl restart mariadb
复制代码

定期分析并优化数据库表:
  1. mysqlcheck -o -u root -p --all-databases
复制代码
  1. sudo vi /usr/local/bin/db_maintenance.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. # 数据库维护脚本
  3. # 优化所有数据库
  4. mysqlcheck -o -u root -p'your_password' --all-databases
  5. # 备份数据库
  6. mysqldump -u root -p'your_password' --all-databases | gzip > /backup/mysql_backup_$(date +%Y%m%d).sql.gz
  7. # 删除30天前的备份
  8. find /backup -name "mysql_backup_*.sql.gz" -type f -mtime +30 -delete
复制代码

设置执行权限:
  1. sudo chmod +x /usr/local/bin/db_maintenance.sh
复制代码
  1. sudo crontab -e
复制代码

添加以下行:
  1. 0 2 * * 0 /usr/local/bin/db_maintenance.sh
复制代码

六、备份与恢复策略

1. 文件系统备份
  1. sudo dnf install -y rsync
复制代码
  1. sudo vi /usr/local/bin/filesystem_backup.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. # 文件系统备份脚本
  3. # 设置变量
  4. BACKUP_DIR="/backup/filesystem"
  5. WEB_DIR="/var/www"
  6. CONFIG_DIR="/etc"
  7. DATE=$(date +%Y%m%d)
  8. # 创建备份目录
  9. mkdir -p $BACKUP_DIR
  10. # 备份网站文件
  11. rsync -avz --delete $WEB_DIR $BACKUP_DIR/web_$DATE
  12. # 备份配置文件
  13. rsync -avz --delete $CONFIG_DIR $BACKUP_DIR/config_$DATE
  14. # 压缩备份
  15. tar -czf $BACKUP_DIR/backup_$DATE.tar.gz -C $BACKUP_DIR web_$DATE config_$DATE
  16. # 删除临时目录
  17. rm -rf $BACKUP_DIR/web_$DATE $BACKUP_DIR/config_$DATE
  18. # 删除30天前的备份
  19. find $BACKUP_DIR -name "backup_*.tar.gz" -type f -mtime +30 -delete
复制代码

设置执行权限:
  1. sudo chmod +x /usr/local/bin/filesystem_backup.sh
复制代码

2. 数据库备份
  1. sudo vi /usr/local/bin/database_backup.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. # 数据库备份脚本
  3. # 设置变量
  4. BACKUP_DIR="/backup/database"
  5. DATE=$(date +%Y%m%d)
  6. # 创建备份目录
  7. mkdir -p $BACKUP_DIR
  8. # 备份所有数据库
  9. mysqldump --all-databases -u root -p'your_password' | gzip > $BACKUP_DIR/all_databases_$DATE.sql.gz
  10. # 删除30天前的备份
  11. find $BACKUP_DIR -name "all_databases_*.sql.gz" -type f -mtime +30 -delete
复制代码

设置执行权限:
  1. sudo chmod +x /usr/local/bin/database_backup.sh
复制代码

3. 设置定期备份
  1. sudo crontab -e
复制代码

添加以下行:
  1. # 每周日凌晨2点备份文件系统
  2. 0 2 * * 0 /usr/local/bin/filesystem_backup.sh
  3. # 每天凌晨3点备份数据库
  4. 0 3 * * * /usr/local/bin/database_backup.sh
复制代码

4. 远程备份策略

在备份服务器上安装rsync:
  1. sudo dnf install -y rsync
复制代码

在Web服务器上生成SSH密钥:
  1. ssh-keygen -t rsa -b 4096 -f ~/.ssh/backup_key
复制代码

将公钥复制到备份服务器:
  1. ssh-copy-id -i ~/.ssh/backup_key.pub user@backup_server
复制代码
  1. sudo vi /usr/local/bin/remote_backup.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. # 远程备份脚本
  3. # 设置变量
  4. BACKUP_SERVER="user@backup_server"
  5. BACKUP_DIR="/backup"
  6. LOCAL_BACKUP_DIR="/backup"
  7. DATE=$(date +%Y%m%d)
  8. # 同步备份到远程服务器
  9. rsync -avz -e "ssh -i ~/.ssh/backup_key" $LOCAL_BACKUP_DIR $BACKUP_SERVER:$BACKUP_DIR/webserver_$DATE
复制代码

设置执行权限:
  1. sudo chmod +x /usr/local/bin/remote_backup.sh
复制代码
  1. sudo crontab -e
复制代码

添加以下行:
  1. # 每周日凌晨4点执行远程备份
  2. 0 4 * * 0 /usr/local/bin/remote_backup.sh
复制代码

5. 恢复策略

从备份恢复网站文件:
  1. # 解压备份文件
  2. tar -xzf /backup/filesystem/backup_YYYYMMDD.tar.gz -C /tmp
  3. # 恢复网站文件
  4. sudo cp -r /tmp/web_YYYYMMDD/* /var/www/
  5. # 恢复配置文件
  6. sudo cp -r /tmp/config_YYYYMMDD/* /etc/
  7. # 设置正确的权限
  8. sudo chown -R apache:apache /var/www
  9. # 或
  10. # sudo chown -R nginx:nginx /var/www
  11. sudo chmod -R 755 /var/www
复制代码

从备份恢复数据库:
  1. # 解压备份文件
  2. gunzip < /backup/database/all_databases_YYYYMMDD.sql.gz | mysql -u root -p
复制代码

在全新系统上恢复:

1. 安装Rocky Linux 8系统
2. 配置网络和基本设置
3. 安装必要的软件包(httpd/nginx, mariadb, php等)
4. 恢复配置文件
5. 恢复网站文件
6. 恢复数据库
7. 重启服务

七、总结

通过本教程,我们详细介绍了在Rocky Linux 8系统上搭建企业网站平台的完整过程,包括:

1. 基础环境配置:系统初始化、网络配置、防火墙设置等
2. Web服务部署:LAMP/LEMP环境搭建、数据库配置、Web服务器配置等
3. 网站部署:域名配置、SSL证书安装、网站文件上传、数据库配置等
4. 安全防护:系统安全加固、Web服务器安全配置、防火墙规则优化、安全监控等
5. 性能优化:服务器资源优化、Web服务器性能调优、数据库性能优化等
6. 备份与恢复策略:文件系统备份、数据库备份、远程备份、恢复策略等

通过遵循这些步骤,您可以构建一个稳定、高效且安全的企业网站平台。当然,实际应用中可能需要根据您的具体需求进行调整和优化。定期维护和监控是确保网站长期稳定运行的关键。

希望本教程能够帮助您成功搭建和管理您的企业网站平台。如果您在实施过程中遇到任何问题,可以参考Rocky Linux官方文档或寻求专业技术支持。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.

>