无论是Web服务器、数据库服务器还是应用服务器,Linux都能提供强大的支持
然而,仅仅安装一个Linux发行版并不能直接满足企业的需求,合理的配置与优化才是实现高效、安全运行的关键
本文将通过一系列Linux配置实例,展示如何打造一个既高效又安全的服务器环境
一、系统基础配置 1. 更新系统 在配置任何服务之前,首先确保系统是最新的
这有助于修复已知的安全漏洞,并引入最新的功能和性能改进
sudo apt update && sudo apt upgrade -y 对于Debian/Ubuntu系列 sudo yum update -y 对于CentOS/RHEL系列 2. 配置时区与语言环境 确保服务器的时区和语言环境正确设置,以避免时区错误和字符编码问题
sudo timedatectl set-timezone America/New_York 设置时区 sudo locale-genen_US.UTF-8 生成语言环境 sudo update-locale LANG=en_US.UTF-8 更新语言环境 3. 禁用不必要的服务 减少运行的服务数量可以降低资源消耗,提高系统性能,同时减少潜在的安全风险
sudo systemctl disable --now
sudo ufw enable 启用ufw防火墙
sudo ufw allow OpenSSH 允许SSH访问
sudo ufw allow Nginx Full 允许Nginx访问(包括HTTP和HTTPS)
sudo ufw status 查看防火墙状态
2. SSH安全配置
修改SSH配置,禁止root登录,限制访问IP,使用密钥认证等,增强SSH安全性
编辑`/etc/ssh/sshd_config`文件:
PermitRootLogin no
AllowUsers user1,user2 仅允许特定用户登录
PasswordAuthentication no 禁用密码认证
ChallengeResponseAuthentication no
重启SSH服务:
sudo systemctl restart sshd
3. 安装并配置Fail2ban
Fail2ban可以监控日志文件,自动封禁多次尝试失败的IP地址
sudo apt install fail2ban Debian/Ubuntu
sudo yum install fail2ban CentOS/RHEL
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑/etc/fail2ban/jail.local,添加或修改规则
sudo systemctl enable --now fail2ban
三、Web服务器配置(以Nginx为例)
1. 安装Nginx
sudo apt install nginx Debian/Ubuntu
sudo yum install nginx CentOS/RHEL
2. 配置Nginx
编辑Nginx配置文件`/etc/nginx/nginx.conf`或特定站点的配置文件,如`/etc/nginx/sites-available/default`
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location/ {
try_files $uri $uri/ =404;
}
# 启用HTTPS重定向(可选)
# return 301 https://$host$request_uri;
# 配置日志
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
3. 测试与重启Nginx
sudo nginx -t 测试配置是否正确
sudo systemctl restart nginx 重启Nginx
4. 配置HTTPS
使用Lets Encrypt免费证书为Nginx配置HTTPS
sudo apt install certbot python3-certbot-nginx Debian/Ubuntu
sudo yum install certbot python3-certbot-nginx CentOS/RHEL
sudo certbot --nginx 自动为Nginx配置HTTPS
四、数据库服务器配置(以MySQL为例)
1. 安装MySQL
sudo apt install mysql-server Debian/Ubuntu
sudo yum install mysql-server CentOS/RHEL
2. 配置MySQL
运行`mysql_secure_installation`脚本,设置root密码,移除匿名用户,禁止root远程登录等
sudo mysql_secure_installation
编辑MySQL配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`(Debian/Ubuntu)或`/etc/my.cnf`(CentOS/RHEL),调整性能参数
3. 创建数据库和用户
CREATE DATABASE mydatabase;
CREATE USER myuser@localhost IDENTIFIED BY mypassword;
GRANT ALL PRIVILEGES ON mydatabase. TO myuser@localhost;
FLUSH PRIVILEGES;
五、应用服务器配置(以Node.js为例)
1. 安装Node.js
使用NodeSource提供的安装脚本安装最新版本的Node.js
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt install -y nodejs Debian/Ubuntu
curl -sL https://rpm.nodesource.com/setup_current.x | sudo bash -
sudo yum install -y nodejs CentOS/RHEL
2. 部署Node.js应用
将应用代码上传至服务器,使用`npm`安装依赖并启动应用
cd /path/to/your/app
npm install
npm start 或使用pm2等进程管理工具
六、日志与监控
1. 配置日志轮转
使用`logrotate`管理日志文件,防止日志文件过大占用磁盘空间
编辑`/etc/logrotate.conf`或创建特定应用的配置文件
/var/log/nginx/.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
【! -f /var/run/nginx.pid 】 || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
2. 安装监控工具
使用`Prometheus`和`Grafana`等监控工具,实时监控服务器性能,及时发现并解决问题
安装Prometheus(以Debian/Ubuntu为例)
wget https://github.com/prometheus/prometheus/releases/download/v2.33.4/prometheus-2.33.4.linux-amd64.tar.gz
tar xvfz prometheus-2.33.4.linux-amd64.tar.gz
cd prometheus-2.33.4.linux-amd64
./prometheus --config.file=prometheus.yml
安装Grafana(以Debian/Ubuntu为例)
sudo apt install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
结语
通过以上Linux配置实例,我们展示了一个高效、安全的服务器环境的构建过程 从系统基础配置到网络安全、Web服务器、数据库服务器、应用服务器