虚拟机安装 Nginx:从环境准备到服务启动
在现代化的开发和部署流程中,虚拟机因其环境隔离、灵活性和可复现性而被广泛应用,Nginx 作为一款高性能的 Web 服务器和反向代理工具,常用于搭建网站、负载均衡和静态资源服务,本文将详细介绍如何在虚拟机中安装并配置 Nginx,涵盖环境准备、安装步骤、基础配置及常见问题处理,帮助读者快速掌握这一实用技能。

虚拟机环境准备
在安装 Nginx 之前,需确保虚拟机系统满足基本要求,并完成基础配置,以常见的 Linux 发行版(如 Ubuntu 20.04 或 CentOS 7)为例,操作步骤如下:
-
系统选择与更新
推荐使用 Ubuntu 20.04 LTS(长期支持版)或 CentOS 7,两者对 Nginx 的支持完善且社区资源丰富,安装完成后,首先更新系统包列表:- Ubuntu/Debian 系统:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL 系统:
sudo yum update -y
- Ubuntu/Debian 系统:
-
安装必要依赖
Nginx 的编译和运行依赖部分基础工具,若通过源码编译安装,需提前安装gcc、make、openssl等依赖;若通过包管理器安装,则可跳过此步骤,在 Ubuntu 中安装编译依赖:sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev -y
-
配置网络与防火墙
确保虚拟机可访问外部网络(用于下载 Nginx 安装包),并根据需要开放防火墙端口,Nginx 默认监听 80(HTTP)和 443(HTTPS)端口,以 Ubuntu 为例:sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
Nginx 安装方式
Nginx 的安装主要有三种方式:通过包管理器安装、从源码编译安装以及使用 Docker 容器部署,包管理器安装最简单快捷,适合初学者;源码编译安装可自定义功能,适合高级用户;Docker 部署则适合容器化环境,本文重点介绍前两种方式。
通过包管理器安装(推荐)
包管理器安装能自动处理依赖关系,且便于后续升级,是生产环境的首选方式。
-
Ubuntu/Debian 系统
使用apt安装,步骤如下:sudo apt install nginx -y
安装完成后,可通过
systemctl status nginx检查服务状态。 -
CentOS/RHEL 系统
使用yum或dnf安装(CentOS 7 使用yum):
sudo yum install epel-release -y # 添加 EPEL 仓库(若未添加) sudo yum install nginx -y
从源码编译安装
若需启用 Nginx 的特定模块(如 nginx-http-flv-module 用于视频直播),可选择源码编译安装。
-
下载 Nginx 源码
访问 Nginx 官网 获取最新稳定版源码,1.24.0 版本:wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0
-
配置编译选项
运行configure脚本,指定安装路径和启用模块(示例启用 SSL 和 HTTP2 支持):./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
-
编译与安装
执行编译和安装命令:make -j$(nproc) # 使用多核编译加速 sudo make install
-
配置系统服务
源码安装的 Nginx 默认不作为系统服务运行,需手动创建服务文件,在/etc/systemd/system/目录下创建nginx.service如下:[Unit] Description=The NGINX HTTP and reverse proxy server After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
启动服务并设置开机自启:
```bash
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx
Nginx 基础配置与验证
安装完成后,需对 Nginx 进行基础配置,并确保服务正常运行。
-
配置文件位置

- 包管理器安装:
- Ubuntu:
/etc/nginx/nginx.conf(主配置文件)、/etc/nginx/sites-available/(站点配置目录) - CentOS:
/etc/nginx/nginx.conf、/etc/nginx/conf.d/
- Ubuntu:
- 源码编译安装:
/usr/local/nginx/conf/nginx.conf
- 包管理器安装:
-
测试配置文件语法
修改配置文件后,需检查语法是否正确:sudo nginx -t
若提示
syntax is ok和test is successful,则配置正确。 -
启动与访问测试
启动 Nginx 服务后,在虚拟机中执行curl http://localhost,或通过浏览器访问虚拟机的 IP 地址(如http://192.168.1.100),若显示 “Welcome to nginx!” 页面,则安装成功。
常见问题与解决方案
-
端口冲突
若 Nginx 启动失败,提示 “address already in use”,需检查端口是否被占用:sudo netstat -tuln | grep :80
若发现其他进程占用端口,可修改 Nginx 配置中的
listen指令(如改为 8080),或终止占用进程。 -
权限问题
若配置文件或日志目录权限不足,可能导致 Nginx 无法写入日志或加载配置,可通过chown修改所有者:sudo chown -R www-data:www-data /var/log/nginx/ # Ubuntu sudo chown -R nginx:nginx /var/log/nginx/ # CentOS
-
服务无法启动
检查系统日志定位问题:sudo journalctl -u nginx -n 20
通过虚拟机安装 Nginx 是开发与运维中的基础技能,无论是通过包管理器快速部署,还是通过源码编译自定义功能,掌握安装流程和配置方法都能为后续的 Web 服务搭建打下坚实基础,在实际使用中,建议结合具体需求调整 Nginx 配置,如虚拟主机设置、反向代理配置、SSL 证书部署等,以充分发挥其高性能和高稳定性的优势。




















