跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Nginx Linux 环境下的安装、配置与维护实战

Nginx 在 Linux 环境下的完整部署流程。内容涵盖安装前的依赖准备、源码编译安装步骤、配置文件各模块详解(全局、events、http)、常用运维命令(测试、重启、停止)以及日志管理与性能优化策略。此外还包含了安全加固、反向代理与负载均衡的高级应用场景,并总结了 502、403 等常见错误的排查方法。通过合理配置和维护,可实现高性能、高可用的 Web 服务架构。

moshang发布于 2026/2/20更新于 2026/8/1831 浏览
Nginx Linux 环境下的安装、配置与维护实战

Nginx 简介

Nginx 是一款高性能的开源 HTTP 和反向代理服务器,以其高并发处理能力和低资源消耗而闻名。它支持多种功能,包括负载均衡、反向代理、静态文件服务等。Nginx 的配置文件基于文本,易于理解和修改,使其成为 Web 开发和运维人员的首选工具之一。

安装准备与编译

在安装 Nginx 之前,确保你的 Linux 系统已经安装了必要的编译工具和库。如果未安装,可以使用以下命令:

yum -y install gcc gcc-c++ autoconf automake make

接下来我们进行源码安装。首先下载并解压源码包:

wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

进入解压后的目录后,配置安装路径。这里建议指定到 /usr/local/nginx:

./configure --prefix=/usr/local/nginx

配置完成后,执行编译和安装:

make && make install

安装成功后,可以通过以下命令检查 Nginx 是否启动成功。如果看到 nginx: master process 和 nginx: worker process,则表示服务已正常启动:

ps -ef | grep nginx

手动启动 Nginx 的命令如下:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

为了方便管理,我们可以将 Nginx 添加到系统的启动脚本中实现开机自启。编辑 /etc/rc.d/rc.local 文件,在末尾添加以下内容:

/usr/local/nginx/sbin/nginx

保存并退出即可。

配置文件详解

Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf,以下是主要部分的说明。

全局配置

这部分决定了 Nginx 运行的基本行为,比如运行用户和工作进程数。建议将 worker_processes 设置为 CPU 核心数。

user nobody;
worker_processes 1;

events 块

用于定义工作模式及连接上限。每个工作进程的最大连接数由 worker_connections 控制。

events {
    worker_connections 1024;
}

http 块

这是最核心的部分,包含 MIME 类型定义、默认文件类型、长连接超时以及具体的 server 配置。

http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name localhost;
        location / {
            root html;
            index index.html index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}

以上是一个基础配置示例,实际项目中可能需要根据业务需求调整。

常用命令

掌握几个关键命令能极大提升运维效率。

检查配置文件语法:在修改配置后务必先执行此命令,避免重启失败。

/usr/local/nginx/sbin/nginx -t

平滑重启 Nginx:无需中断当前连接即可应用新配置。

/usr/local/nginx/sbin/nginx -s reload

停止 Nginx:优雅关闭服务。

/usr/local/nginx/sbin/nginx -s stop

启动 Nginx:直接启动服务。

/usr/local/nginx/sbin/nginx

维护与优化

日志管理

Nginx 的日志默认存储在 /usr/local/nginx/logs 目录下。可以通过配置文件中的 access_log 和 error_log 指令指定位置。例如:

access_log /usr/local/nginx/logs/access.log main;
error_log /usr/local/nginx/logs/error.log warn;

性能优化

  1. 调整工作进程数:将 worker_processes 设置为 CPU 核心数。
  2. 优化连接数:增大 worker_connections 的值以支持更多并发连接。
  3. 启用 Gzip 压缩:在 http 块中添加以下配置,减少传输体积。
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_types text/plain application/javascript application/json;

安全配置

隐藏版本信息:防止泄露 Nginx 版本细节。

server_tokens off;

限制访问:使用 allow 和 deny 指令限制对特定资源的访问。

location /admin {
    allow 192.168.1.0/24;
    deny all;
}

高级应用

反向代理

Nginx 可以作为反向代理服务器,将请求转发到后端服务器。注意设置 Host 和 X-Real-IP 头信息,以便后端获取真实客户端 IP。

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

负载均衡

Nginx 可以实现简单的负载均衡功能,通过 upstream 定义后端服务器组。

upstream backend {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend;
    }
}

常见问题及解决方案

  1. 502 Bad Gateway 错误

    • 原因:后端服务未启动或 Nginx 无法连接到后端服务。
    • 解决方法:检查后端服务是否正常运行,并确保 Nginx 的 proxy_pass 配置正确。
  2. 403 Forbidden 错误

    • 原因:文件权限不足或 root 指令配置错误。
    • 解决方法:检查文件权限,并确保 root 指令指向正确的目录。
  3. Nginx 无法启动

    • 原因:配置文件语法错误。
    • 解决方法:使用 /usr/local/nginx/sbin/nginx -t 检查配置文件语法。

目录

  1. Nginx 简介
  2. 安装准备与编译
  3. 配置文件详解
  4. 全局配置
  5. events 块
  6. http 块
  7. 常用命令
  8. 维护与优化
  9. 日志管理
  10. 性能优化
  11. 安全配置
  12. 高级应用
  13. 反向代理
  14. 负载均衡
  15. 常见问题及解决方案
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 大模型在内容审核中的应用与实现
  • OpenAI Whisper 本地语音识别部署与使用指南
  • 青少年软件编程 Python 等级考试一级解析
  • 深入理解前端防抖(Debounce)与节流(Throttle):原理、区别与实战示例
  • FPGA 快速傅里叶变换(FFT)IP 核配置与实现
  • 边缘 AI 技术详解:从概念到终端部署实践
  • 大模型微调框架 Firefly 与 LLaMA Factory 对比及选型建议
  • SD AI 绘画:提示词编写指南与技巧
  • LeetCode 142. 环形链表 II 解题思路与代码实现
  • Neo4j 图数据库基础入门
  • RabbitMQ 分布式系统实战:从安装部署到 C++ 客户端调用详解
  • Go2 机器人 ROS2 与 Gazebo 仿真环境搭建指南
  • 从后端到前端:AI Agent 跨语言全栈项目实战记录(Java + Python + Vue3)
  • Python aesthetic-ascii2 库功能与使用指南
  • YOLO-DRONE:无人机低空巡检模型优化与小目标检测提升
  • LLM 训练怎么走:预训练、微调和 RLHF
  • 2024 年国内主流 AI 大模型平台全方位测评
  • 数据结构:归并排序的分治实现与特性分析
  • Whisper-Large-V3-Turbo 高效部署与性能解析
  • 5 步实现 ESP32 无人机合规识别:ArduRemoteID 开源方案详解

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online