安装前准备
确认当前系统版本,执行以下命令查看发行版信息:
bash
cat /etc/os-release
Ubuntu/Debian 安装方法
更新软件源并升级现有包:
bash
sudo apt update && sudo apt upgrade -y
安装 Nginx 软件包:
bash
sudo apt install nginx -y
启动服务并设置开机自启:
bash
sudo systemctl start nginx
sudo systemctl enable nginx
验证安装:
- 浏览器访问服务器 IP,或执行:
bash
curl -I http://localhost
预期输出包含 HTTP/1.1 200 OK。
CentOS/RHEL 安装方法
添加 EPEL 仓库:
bash
sudo yum install epel-release -y
安装 Nginx:
bash
sudo yum install nginx -y
启动服务并配置防火墙:
bash
sudo systemctl start nginx
sudo systemctl enable nginx
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload
编译安装(高级选项)
安装编译依赖:
bash
sudo apt install build-essential libpcre3-dev zlib1g-dev libssl-dev -y
下载并解压源码:
bash
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar -xzf nginx-1.25.3.tar.gz
cd nginx-1.25.3
配置编译参数(示例启用 SSL 和 HTTP/2):
bash
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
编译并安装:
bash
make && sudo make install
启动服务:
bash
sudo /usr/local/nginx/sbin/nginx
关键文件路径
-
Ubuntu/Debian
- 主配置:
/etc/nginx/nginx.conf - 虚拟主机:
/etc/nginx/sites-available/和/etc/nginx/sites-enabled/
- 主配置:
-
CentOS/RHEL
- 主配置:
/etc/nginx/nginx.conf - 扩展配置:
/etc/nginx/conf.d/
- 主配置:
建议
- 生产环境推荐使用包管理器安装,稳定性更高。
- 仅当需要自定义模块或特定功能时选择编译安装。
确认 Nginx 安装目录
编译安装的 Nginx 默认路径为 /usr/local/nginx,关键子目录包括:
- 配置文件:
/usr/local/nginx/conf/nginx.conf - 默认网站根目录:
/usr/local/nginx/html - 日志目录:
/usr/local/nginx/logs
准备项目文件
将项目文件(如前端静态资源或后端构建产物)放置于统一目录,例如 /var/www/myproject。典型结构如下:
/var/www/myproject
├── index.html
├── css/style.css
└── js/app.js
配置 Nginx 虚拟主机
编辑配置文件 /usr/local/nginx/conf/nginx.conf,修改或新增 server 块:
nginx
server {
listen 80;
server_name localhost; # 替换为实际域名如 example.com
location / {
root /var/www/myproject;
index index.html;
try_files $uri $uri/ /index.html; # 支持前端路由
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
}
验证配置并重启
执行语法检查:
bash
sudo /usr/local/nginx/sbin/nginx -t
若无错误,重载配置:
bash
sudo /usr/local/nginx/sbin/nginx -s reload
设置文件权限
确保 Nginx 进程用户(通常为 nginx 或 www-data)有访问权限:
bash
sudo chown -R nginx:nginx /var/www/myproject
sudo chmod -R 755 /var/www/myproject
注意事项
防火墙:如果服务器有防火墙,需要开放 80 端口:
bash
运行
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
访问测试
通过命令行或浏览器验证:
bash
curl http://localhost
或浏览器访问服务器 IP/域名。
多站点配置示例
在 nginx.conf 中追加多个 server 块实现多项目部署:
nginx
server {
listen 80;
server_name site1.com;
root /var/www/site1;
index index.html;
}
server {
listen 80;
server_name site2.com;
root /var/www/site2;
index index.html;
}
常用操作命令
-
检查配置:
sudo /usr/local/nginx/sbin/nginx -t -
重载配置:
sudo /usr/local/nginx/sbin/nginx -s reload -
停止服务:
sudo /usr/local/nginx/sbin/nginx -s stop -
查看实时日志:
bashsudo tail -f /usr/local/nginx/logs/access.log sudo tail -f /usr/local/nginx/logs/error.log
进阶场景
-
前端路由支持 :在
location /中添加try_files $uri $uri/ /index.html。 -
反向代理 :若需代理后端 API,示例配置:
nginxlocation /api/ { proxy_pass http://backend_server:3000; proxy_set_header Host $host; } -
HTTPS 配置 :使用 Let's Encrypt 证书并修改
server块监听 443 端口。