实验环境准备
本次实验在虚拟机环境中进行,操作系统为Ubuntu 22.04 LTS Server版,硬件配置为2核CPU、4GB内存、50GB存储,软件依赖包括Nginx 1.18.0(Web服务器软件)、OpenSSL 3.0.2(用于SSL证书生成)、以及curl 7.81.0(测试工具),实验前确保系统已更新至最新状态,并关闭防火墙(ufw disable),避免网络访问干扰。

Web服务器安装步骤
安装过程采用Ubuntu的APT包管理器,具体步骤如下:
- 更新软件包列表:执行
sudo apt update命令,确保获取最新的软件源信息; - 安装Nginx:运行
sudo apt install nginx -y,系统自动下载并安装Nginx及其依赖项; - 验证安装:通过
nginx -v查看版本信息,确认安装成功(输出“nginx version: nginx/1.18.0”); - 启动服务:执行
sudo systemctl start nginx,并通过systemctl status nginx检查服务状态,确保显示“active (running)”。
核心配置过程
安装完成后,对Nginx进行基础配置,重点包括默认站点修改、虚拟主机配置及SSL安全启用:
- 默认站点配置:编辑默认配置文件
/etc/nginx/sites-available/default,将root目录指向/var/www/html(自定义网站根目录),并设置index文件为index.html index.htm; - 创建测试页面:在
/var/www/html下新建index.html为“
Nginx Test Page
”,赋予目录权限
sudo chown -R www-data:www-data /var/www/html; - 虚拟主机配置:新建配置文件
/etc/nginx/sites-available/example.com,定义server_name为localhost,root目录指向/var/www/example,并通过sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/启用站点; - SSL证书配置:使用OpenSSL生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt,并在虚拟主机配置中添加listen 443 ssl、ssl_certificate及ssl_certificate_key参数,启用HTTPS。
功能测试与结果分析
配置完成后,通过以下步骤验证服务器功能:

- 本地访问测试:在宿主机浏览器输入
http://虚拟机IP,成功显示“Nginx Test Page”; - HTTPS访问测试:输入
https://虚拟机IP,尽管浏览器提示“不安全”(自签名证书特征),但页面内容正常加载; - 命令行测试:使用
curl -I http://虚拟机IP,返回HTTP状态码“200 OK”;curl -k https://虚拟机IP成功获取页面内容; - 性能测试:通过
ab -n 1000 -c 10 http://虚拟机IP/进行压力测试,结果显示每秒请求数(QPS)约为220,请求成功率100%,表明服务器性能稳定; - 日志分析:查看
/var/log/nginx/access.log,记录了详细的访问时间、IP、请求路径等信息;error.log无错误输出,验证配置无语法或逻辑问题。
实验总结与问题复盘
本次实验成功完成Nginx的安装与配置,实现了HTTP/HTTPS服务部署、虚拟主机隔离及基础功能验证,过程中遇到的主要问题包括:初始因/var/www/html权限不足导致页面无法访问,通过修改属主解决;SSL配置时因证书路径错误导致HTTPS启动失败,通过检查nginx -t定位并修复,实验表明,Nginx配置需注重文件权限、语法正确性及服务状态检查,同时日志文件是排查问题的重要依据。
FAQs
Q1:安装Nginx后本地浏览器无法访问,可能的原因有哪些?
A:常见原因包括:① Nginx服务未启动(需执行sudo systemctl start nginx);② 防火墙拦截(需开放80/443端口,如sudo ufw allow 80);③ 网站目录权限不足(需确保/var/www/html属主为www-data);④ 配置文件语法错误(通过nginx -t检查并修复)。
Q2:如何为Nginx配置多个基于域名的虚拟主机?
A:步骤如下:① 在/etc/nginx/sites-available/下为每个域名创建独立配置文件(如site1.com、site2.com),分别定义server_name和对应的root目录;② 通过sudo ln -s将配置文件链接到/etc/nginx/sites-enabled/;③ 执行sudo nginx -t检查语法,无误后运行sudo systemctl reload nginx重载配置,即可通过不同域名访问不同站点。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复