在Linux上搭建Web服务器是部署网站、API服务或Web应用的核心技能,本文提供一份专业、安全的搭建指南,涵盖主流工具(Apache/Nginx)和关键配置步骤,适用于Ubuntu/CentOS等主流发行版,所有操作均基于最新稳定版软件,确保安全性与兼容性。
准备工作
-
系统要求
- Linux发行版:Ubuntu 22.04 LTS 或 CentOS 9(长期支持版)
- 最小配置:1核CPU、1GB内存、10GB存储(生产环境需更高)
- 拥有
sudo
权限的用户账户
-
更新系统
避免安全漏洞,先更新软件包:# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo dnf update -y
安装Web服务器(Apache或Nginx)
选项1:Apache(适合传统动态网站)
安装命令:
# CentOS sudo dnf install httpd -y
启动与验证:
sudo systemctl start apache2 # Ubuntu sudo systemctl start httpd # CentOS sudo systemctl enable apache2 # 开机自启
访问 http://服务器IP
,若显示”Apache2 Default Page”即成功。
选项2:Nginx(适合高并发静态资源)
安装命令:
# CentOS sudo dnf install nginx -y
启动与验证:
sudo systemctl start nginx sudo systemctl enable nginx
访问 http://服务器IP
,出现”Welcome to nginx!”即成功。
关键配置步骤
防火墙放行流量
允许HTTP(80)/HTTPS(443)端口:
# Ubuntu (UFW) sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload # CentOS (Firewalld) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
部署网站文件
- 默认根目录:
- Apache:
/var/www/html/
- Nginx:
/usr/share/nginx/html/
- Apache:
- 上传网站文件:
sudo cp -r your_website/* /var/www/html/ # Apache示例 sudo chown -R www-data:www-data /var/www/html/ # 赋权(Ubuntu)
配置虚拟主机(多站点)
Apache示例(创建 /etc/apache2/sites-available/your_site.conf
):
<VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/your_site ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
启用配置:
sudo a2ensite your_site.conf # Ubuntu sudo systemctl reload apache2
Nginx示例(创建 /etc/nginx/conf.d/your_site.conf
):
server { listen 80; server_name yourdomain.com; root /usr/share/nginx/your_site; index index.html; location / { try_files $uri $uri/ =404; } }
启用配置:
sudo nginx -t # 测试语法 sudo systemctl reload nginx
安装PHP与数据库(动态网站必备)
PHP集成
# Ubuntu (PHP 8.1) sudo apt install php libapache2-mod-php php-mysql -y # CentOS (PHP 8.1) sudo dnf install php php-mysqlnd php-fpm -y
MySQL/MariaDB安装
sudo mysql_secure_installation # 运行安全配置 # CentOS sudo dnf install mariadb-server -y sudo systemctl start mariadb sudo mysql_secure_installation
验证PHP
创建 /var/www/html/info.php
<?php phpinfo(); ?>
访问 http://服务器IP/info.php
,显示PHP信息页即成功。
安全加固措施
-
启用HTTPS
使用Let’s Encrypt免费证书:# 安装Certbot sudo apt install certbot python3-certbot-apache -y # Apache sudo certbot --apache -d yourdomain.com # 按提示操作
-
禁用敏感信息
- Apache: 编辑
/etc/apache2/conf-available/security.conf
,设置:ServerTokens Prod ServerSignature Off
- Nginx: 在
nginx.conf
中添加:server_tokens off;
- Apache: 编辑
-
定期更新与监控
# 设置自动更新 sudo apt install unattended-upgrades -y # Ubuntu sudo dnf install dnf-automatic -y # CentOS
常见问题解决
- 403 Forbidden错误:检查目录权限(
chmod 755 /var/www
)及SELinux状态(setenforce 0
临时禁用测试)。 - 端口冲突:用
ss -tulnp | grep ':80'
排查占用进程。 - PHP文件不解析:确保Apache配置中有
DirectoryIndex index.php index.html
。
遵循本指南,您已成功搭建安全、高效的Linux Web服务器,建议定期备份数据并监控日志(/var/log/apache2/
或 /var/log/nginx/
),进阶可探索负载均衡、Docker容器化等方案,持续提升服务稳定性。
引用说明:本文参考官方文档(Apache/Nginx)、Linux Foundation安全指南及Let’s Encrypt最佳实践,技术细节基于Ubuntu 22.04/CentOS 9验证,适用于主流云服务环境。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9908.html