無論是Web服務(wù)器、數(shù)據(jù)庫服務(wù)器還是應(yīng)用服務(wù)器,Linux都能提供強大的支持
然而,僅僅安裝一個Linux發(fā)行版并不能直接滿足企業(yè)的需求,合理的配置與優(yōu)化才是實現(xiàn)高效、安全運行的關(guān)鍵
本文將通過一系列Linux配置實例,展示如何打造一個既高效又安全的服務(wù)器環(huán)境
一、系統(tǒng)基礎(chǔ)配置 1. 更新系統(tǒng) 在配置任何服務(wù)之前,首先確保系統(tǒng)是最新的
這有助于修復已知的安全漏洞,并引入最新的功能和性能改進
sudo apt update && sudo apt upgrade -y 對于Debian/Ubuntu系列 sudo yum update -y 對于CentOS/RHEL系列 2. 配置時區(qū)與語言環(huán)境 確保服務(wù)器的時區(qū)和語言環(huán)境正確設(shè)置,以避免時區(qū)錯誤和字符編碼問題
sudo timedatectl set-timezone America/New_York 設(shè)置時區(qū) sudo locale-genen_US.UTF-8 生成語言環(huán)境 sudo update-locale LANG=en_US.UTF-8 更新語言環(huán)境 3. 禁用不必要的服務(wù) 減少運行的服務(wù)數(shù)量可以降低資源消耗,提高系統(tǒng)性能,同時減少潛在的安全風險
sudo systemctl disable --now
sudo ufw enable 啟用ufw防火墻
sudo ufw allow OpenSSH 允許SSH訪問
sudo ufw allow Nginx Full 允許Nginx訪問(包括HTTP和HTTPS)
sudo ufw status 查看防火墻狀態(tài)
2. SSH安全配置
修改SSH配置,禁止root登錄,限制訪問IP,使用密鑰認證等,增強SSH安全性
編輯`/etc/ssh/sshd_config`文件:
PermitRootLogin no
AllowUsers user1,user2 僅允許特定用戶登錄
PasswordAuthentication no 禁用密碼認證
ChallengeResponseAuthentication no
重啟SSH服務(wù):
sudo systemctl restart sshd
3. 安裝并配置Fail2ban
Fail2ban可以監(jiān)控日志文件,自動封禁多次嘗試失敗的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,添加或修改規(guī)則
sudo systemctl enable --now fail2ban
三、Web服務(wù)器配置(以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
四、數(shù)據(jù)庫服務(wù)器配置(以MySQL為例)
1. 安裝MySQL
sudo apt install mysql-server Debian/Ubuntu
sudo yum install mysql-server CentOS/RHEL
2. 配置MySQL
運行`mysql_secure_installation`腳本,設(shè)置root密碼,移除匿名用戶,禁止root遠程登錄等
sudo mysql_secure_installation
編輯MySQL配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`(Debian/Ubuntu)或`/etc/my.cnf`(CentOS/RHEL),調(diào)整性能參數(shù)
3. 創(chuàng)建數(shù)據(jù)庫和用戶
CREATE DATABASE mydatabase;
CREATE USER myuser@localhost IDENTIFIED BY mypassword;
GRANT ALL PRIVILEGES ON mydatabase. TO myuser@localhost;
FLUSH PRIVILEGES;
五、應(yīng)用服務(wù)器配置(以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應(yīng)用
將應(yīng)用代碼上傳至服務(wù)器,使用`npm`安裝依賴并啟動應(yīng)用
cd /path/to/your/app
npm install
npm start 或使用pm2等進程管理工具
六、日志與監(jiān)控
1. 配置日志輪轉(zhuǎn)
使用`logrotate`管理日志文件,防止日志文件過大占用磁盤空間
編輯`/etc/logrotate.conf`或創(chuàng)建特定應(yīng)用的配置文件
/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. 安裝監(jiān)控工具
使用`Prometheus`和`Grafana`等監(jiān)控工具,實時監(jiān)控服務(wù)器性能,及時發(fā)現(xiàn)并解決問題
安裝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
結(jié)語
通過以上Linux配置實例,我們展示了一個高效、安全的服務(wù)器環(huán)境的構(gòu)建過程 從系統(tǒng)基礎(chǔ)配置到網(wǎng)絡(luò)安全、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器