一、Web服务器的作用与选择
Web服务器是承载网站内容的核心组件,负责处理HTTP请求并返回响应。主流选择:
- Apache:模块化设计,功能丰富,适合传统动态网站。
- Nginx:高并发、低内存消耗,适合静态资源与反向代理。
- 适用场景对比:
场景 Apache优势 Nginx优势 动态内容(PHP) 模块直接集成(如 mod_php
)需通过FastCGI转发(如PHP-FPM) 静态资源分发 一般性能 高并发、高效缓存 反向代理/负载均衡 需配合模块(如 mod_proxy
)原生支持,配置简洁
二、Apache安装与基础配置
1. 安装Apache(以Ubuntu为例)
sudo apt update
sudo apt install apache2
systemctl status apache2 # 验证服务状态
2. 核心配置文件结构
- 主配置目录:
/etc/apache2/
apache2.conf
:全局配置。sites-available/
:虚拟主机模板。sites-enabled/
:已启用的虚拟主机(通过符号链接激活)。
3. 配置虚拟主机
# 创建虚拟主机配置文件
sudo vi /etc/apache2/sites-available/myblog.conf
# 内容示例:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName myblog.com
DocumentRoot /var/www/myblog
ErrorLog ${APACHE_LOG_DIR}/myblog_error.log
CustomLog ${APACHE_LOG_DIR}/myblog_access.log combined
</VirtualHost>
# 启用配置并重启服务
sudo a2ensite myblog.conf
sudo systemctl reload apache2
三、Nginx安装与基础配置
1. 安装Nginx
sudo apt install nginx
systemctl status nginx # 验证服务状态
2. 核心配置文件结构
- 主配置文件:
/etc/nginx/nginx.conf
(包含全局配置)。 - 站点配置目录:
/etc/nginx/sites-available/
与sites-enabled/
。
3. 配置虚拟主机与反向代理
# 创建虚拟主机配置
sudo vi /etc/nginx/sites-available/myapp.conf
# 内容示例:
server {
listen 80;
server_name myapp.com;
root /var/www/myapp;
location / {
index index.html;
}
# 反向代理到后端服务
location /api/ {
proxy_pass http://localhost:8080/;
}
}
# 启用配置
sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/
sudo nginx -t # 检查语法
sudo systemctl reload nginx
四、HTTPS加密:SSL证书部署
1. 使用Certbot自动获取证书(Let’s Encrypt)
# 安装Certbot(以Apache为例)
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d myblog.com # 按提示操作
# Nginx同理
sudo apt install python3-certbot-nginx
sudo certbot --nginx -d myapp.com
2. 手动配置证书(适用于内网)
# 生成自签名证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/selfsigned.key \
-out /etc/ssl/certs/selfsigned.crt
# Apache配置SSL
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
</VirtualHost>
五、实战:基于LAMP搭建个人博客(WordPress)
1. 安装LAMP组件
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
2. 配置MySQL数据库
sudo mysql -u root
CREATE DATABASE wordpress_db;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
3. 部署WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/myblog
sudo chown -R www-data:www-data /var/www/myblog
4. 访问安装向导
浏览器访问 http://myblog.com
,按提示完成数据库配置与站点初始化。
六、性能调优技巧
1. Apache优化
- 启用MPM模块:
sudo a2enmod mpm_event sudo systemctl restart apache2
- 调整并发参数(
/etc/apache2/mods-available/mpm_event.conf
):MaxRequestWorkers 150 ServerLimit 150
2. Nginx优化
- 启用Gzip压缩(
/etc/nginx/nginx.conf
):gzip on; gzip_types text/plain text/css application/json;
- 调整Worker进程数:
worker_processes auto; worker_connections 4096;
七、总结与预告
本文完成Apache与Nginx的对比部署,并实现了HTTPS加密与WordPress博客搭建。下期预告:《数据库入门:MySQL安装与基础运维》,将讲解用户权限、备份恢复及性能监控。
互动环节:
- 你在配置虚拟主机时遇到过哪些报错?欢迎分享解决方法!
- 作业:尝试为Nginx配置一个反向代理,将
/static/
路径指向本地静态资源目录。
资源推荐:
- 官方文档:Apache | Nginx
- 工具:Certbot | WordPress
- 社区:Server Fault
动手搭建你的第一个Web服务,向运维实战迈出关键一步! 🚀🔧