無論是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服務器、數據庫服務器、應用服務器