在 Linux 系统上搭建 Web 服务器是托管网站、应用程序或 API 的高效解决方案,Linux 因其开源本质、卓越的稳定性、强大的安全性和丰富的工具生态,成为全球 Web 服务器的首选平台,以下是一份基于最佳实践的详细指南,涵盖主流工具和关键配置步骤。
确保系统处于最新状态,避免安全漏洞:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu sudo dnf update -y # Fedora/CentOS Stream sudo yum update -y # CentOS 7
- 配置防火墙
启用防火墙并开放必要端口(HTTP 80 / HTTPS 443):sudo ufw allow 80/tcp # 允许 HTTP sudo ufw allow 443/tcp # 允许 HTTPS sudo ufw enable # 启用防火墙
安装 Web 服务器软件
根据需求选择 Apache 或 Nginx(二者占全球 80% 以上份额):
-
选项 1:Apache (适合动态内容)
sudo apt install apache2 -y # Debian/Ubuntu sudo yum install httpd -y # CentOS
启动服务:
sudo systemctl start apache2 && sudo systemctl enable apache2
-
选项 2:Nginx (适合高并发静态资源)
sudo apt install nginx -y # Debian/Ubuntu sudo yum install nginx -y # CentOS
启动服务:
sudo systemctl start nginx && sudo systemctl enable nginx
验证安装:浏览器访问
http://<服务器IP>
,出现 Apache/Nginx 默认页即成功。
配置网站目录与权限
-
创建网站根目录
sudo mkdir -p /var/www/your_domain/public_html sudo chown -R $USER:$USER /var/www/your_domain/public_html sudo chmod -R 755 /var/www
-
设置虚拟主机 (以 Apache 为例)
创建配置文件:sudo nano /etc/apache2/sites-available/your_domain.conf
写入以下内容(替换
your_domain
):<VirtualHost *:80> ServerAdmin admin@your_domain ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
启用配置:
sudo a2ensite your_domain.conf sudo systemctl reload apache2
安装数据库 (MySQL/MariaDB)
-
安装与安全初始化
sudo apt install mariadb-server -y # Debian/Ubuntu sudo mysql_secure_installation # 设置 root 密码并移除测试数据库
-
创建数据库和用户
mysql -u root -p CREATE DATABASE web_db; CREATE USER 'web_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON web_db.* TO 'web_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
安装 PHP (动态内容支持)
-
安装 PHP 及扩展
sudo apt install php libapache2-mod-php php-mysql -y # Apache sudo apt install php-fpm php-mysql -y # Nginx
-
测试 PHP
创建测试文件/var/www/your_domain/public_html/info.php
:<?php phpinfo(); ?>
访问
http://<服务器IP>/info.php
查看 PHP 配置信息(测试后务必删除此文件)。
部署网站文件
-
上传网站代码
使用 SFTP/SCP 或 Git 将文件传输至/var/www/your_domain/public_html
。 -
设置文件所有权
sudo chown -R www-data:www-data /var/www/your_domain # Apache sudo chown -R nginx:nginx /var/www/your_domain # Nginx
安全加固关键措施
-
启用 HTTPS (免费证书)
安装 Certbot 获取 Let’s Encrypt 证书:sudo apt install certbot python3-certbot-apache -y # Apache sudo certbot --apache -d your_domain -d www.your_domain
证书自动续期已配置。
-
禁用 root SSH 登录
编辑/etc/ssh/sshd_config
:PermitRootLogin no PasswordAuthentication no # 推荐使用密钥登录
重启服务:
sudo systemctl restart sshd
-
定期更新与监控
- 设置自动安全更新:
sudo apt install unattended-upgrades
- 使用日志分析工具(如 Fail2ban)防御暴力破解。
- 设置自动安全更新:
性能优化建议
- Nginx 静态缓存:配置
expires
头加速资源加载。 - PHP-FPM 调优:根据内存调整
pm.max_children
值。 - 启用 Gzip 压缩:在 Nginx/Apache 配置中开启压缩减少带宽消耗。
通过以上步骤,您已成功部署了一个符合生产环境标准的 Linux Web 服务器,关键要素包括:定期维护(更新/备份)、最小权限原则(文件/数据库权限)、强制 HTTPS 传输,实际部署中需根据流量规模调整资源配置,并参考 Web 服务器(Apache/Nginx)和数据库官方文档进行深度优化。
引用说明:本文操作基于 Ubuntu 22.04 LTS 和 CentOS 7 验证,参考了 DigitalOcean 社区教程、Apache/Nginx 官方文档、Let’s Encrypt 技术指南及 Linux 基金会安全建议,命令行均通过实际环境测试,确保可复现性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9666.html