1. 前提准备
下载文件:
Nginx 源码包(官网 nginx.org,如 nginx-1.24.0.tar.gz)
依赖 deb 包(匹配 Ubuntu 版本,如 20.04:gcc、g++、make、libpcre3-dev、zlib1g-dev、libssl-dev、net-tools(可选))
上传路径:将文件传到服务器 /opt/nginx-offline 目录
2. 安装依赖(deb 包离线安装)
cd /opt/nginx-offline/deps
sudo dpkg -i --force-depends *.deb # 跳过临时依赖报错,确保基础安装
3. 编译安装 Nginx
解压源码:
sudo tar -zxvf /opt/nginx-offline/nginx-1.24.0.tar.gz -C /opt/
配置编译参数:
cd /opt/nginx-1.24.0
sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module # 启用SSL(按需)
编译安装:
sudo make && sudo make install
验证:
/usr/local/nginx/sbin/nginx -v # 显示版本即成功
二、Nginx 目录及文件说明(默认路径:/usr/local/nginx)
sbin/:核心执行目录,含 nginx 二进制文件(命令入口)
conf/:配置文件目录
nginx.conf:主配置文件(全局、HTTP 服务、虚拟主机等)
mime.types:MIME 类型映射(如 .html 对应 text/html)
nginx.conf.default:默认配置模板(备份参考)
html/:静态文件目录
index.html:默认首页(访问服务器 IP 加载)
50x.html:错误页面(如 502 时显示)
logs/:日志目录(需确保权限)
access.log:访问日志(IP、请求时间、响应码等)
error.log:错误日志(配置 / 连接异常)
nginx.pid:主进程 ID 文件(停止 / 重启依赖)
proxy_temp/:反向代理临时目录(自动生成,存缓存)
三、Nginx 常用功能
1. 静态资源服务(部署前端页面)
配置(修改 /usr/local/nginx/conf/nginx.conf):
http {
worker_processes 1; # 建议设为 CPU 核心数(如 2)
server {
listen 80; # 非root用户用 1024+ 端口(如 8080)
server_name 192.168.1.100; # 服务器实际IP
root /usr/local/nginx/html/dist; # 前端 dist 目录
index index.html;
# 解决 Vue history 模式刷新404
location / {
try_files $uri $uri/ /index.html;
}
}
}
生效:sudo /usr/local/nginx/sbin/nginx -s reload
2. 反向代理(对接后端服务)
配置示例(转发 80 端口到 8080 后端):
server {
listen 80;
server_name 192.168.1.100;
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. 端口转发(8081 转 8080)
server {
listen 8081; # 非root用户可用
location / {
proxy_pass http://127.0.0.1:8080;
}
}
4. 日志切割(避免磁盘占满)
备份旧日志:sudo mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access_20251110.log
生成新日志:sudo /usr/local/nginx/sbin/nginx -s reopen
删旧日志(可选):sudo find /usr/local/nginx/logs/ -name "access_*.log" -mtime +30 -delete
四、Nginx 常用命令
1. 服务管理
启动:
root 用户:/usr/local/nginx/sbin/nginx
非 root 用户:/usr/local/nginx/sbin/nginx(用 1024+ 端口)
停止:
快速停止:sudo /usr/local/nginx/sbin/nginx -s stop
优雅停止:sudo /usr/local/nginx/sbin/nginx -s quit
重载配置:sudo /usr/local/nginx/sbin/nginx -s reload
2. 状态与信息查看
查看进程:ps -ef | grep nginx | grep -v grep
查看版本:
简化:/usr/local/nginx/sbin/nginx -v
完整:/usr/local/nginx/sbin/nginx -V(含编译参数)
查看端口:sudo netstat -tuln | grep 80(替换为实际端口)
3. 配置与日志操作
检查配置:/usr/local/nginx/sbin/nginx -t(返回成功则正确)
实时日志:
访问日志:sudo tail -f /usr/local/nginx/logs/access.log
错误日志:sudo tail -f /usr/local/nginx/logs/error.log(按 Ctrl+C 退出)
历史日志:sudo tail -n 100 /usr/local/nginx/logs/error.log(最近 100 行)
五、注意事项
权限:sudo chown -R $USER:$USER /usr/local/nginx/($USER 替换为当前用户)
端口:1024 以下端口(80/443)需 root 权限,非 root 用 8080+ 端口
依赖:dpkg 报错时,从 Ubuntu 镜像 pool 目录补充 deb 包
自启:sudo echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
发表评论