Nginx 入门教程(安装、反向代理、负载均衡、动静分离)

一、Nginx 简介

1. 什么是 Nginx?

Nginx(发音 engine x)是一款由俄罗斯开发的 高性能 Web 服务器反向代理服务器 ,采用 C 语言编写,具有占用内存少、并发能力强的特点,在高并发场景下表现优异。

2. Nginx 的主要作用

  • 反向代理:代替后端服务器(如 Tomcat)接收请求

  • 负载均衡:将请求分发到多个后端服务器

  • 动静分离:将静态资源交由 Nginx 处理,动态请求转发到后端服务器


二、Nginx 安装与启动

1. 安装步骤

(1)安装依赖环境
复制代码
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
(2)上传并解压源码包
复制代码
cd /usr/upload
tar -zxvf nginx-1.10.0.tar.gz
(3)配置安装路径
复制代码
cd /usr/upload/nginx-1.10.0
./configure --prefix=/usr/local/nginx
(4)编译并安装
复制代码
make && make install

2. 目录结构说明

目录 说明
conf 配置文件(nginx.conf)
html 静态页面存放目录
logs 日志文件
sbin 启动脚本

3. 常用命令

进入 Nginx 可执行文件目录:

复制代码
cd /usr/local/nginx/sbin
功能 命令
启动 ./nginx
停止 ./nginx -s stop
平滑重启(重载配置) ./nginx -s reload

三、反向代理配置

示例:将请求转发到 Tomcat

复制代码
server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

📌 原理:客户端访问 Nginx(80端口),Nginx 将请求转发到后端 Tomcat(8080端口)。


四、负载均衡

1. 基本配置

复制代码
upstream myTomcats {
    server 127.0.0.1:8080;
    server 127.0.0.1:8090;
}

server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://myTomcats;
    }
}

2. Nginx 支持的 6 种负载均衡策略

策略 说明
**轮询(默认)**​ 按顺序轮流分配请求
weight 按权重比例分配
ip_hash 根据客户端 IP 分配固定服务器
url_hash 根据 URL 分配
least_conn 分配给当前连接数最少的服务器
fair 根据后端响应时间分配(需第三方模块)

3. 防止 Session 丢失的方案

  1. ip_hash

    同一 IP 的请求固定分配到同一台 Tomcat(但某台 Tomcat 宕机仍会切换)

  2. Session 复制

    多台 Tomcat 间同步 Session(性能消耗大)

  3. Redis 共享 Session​ ✅(推荐)

    Session 数据存入 Redis,Tomcat 从 Redis 读取


五、动静分离

示例:静态资源由 Nginx 直接处理

复制代码
server {
    listen 80;
    server_name localhost;

    location / {
        root /usr/upload/pic;
    }
}

📌 动静分离优点

  • 减少后端服务器压力

  • 提高静态资源访问速度

  • 更好地利用 Nginx 的高并发能力


六、总结

Nginx 作为一个轻量高效的 Web 服务器,在反向代理、负载均衡、动静分离等方面都有非常成熟的应用场景。配合 Tomcat 使用,可以有效提升系统并发能力和稳定性。


如果你需要,我可以帮你 加上 CSDN 风格的封面图和关键词标签,让它更符合平台规范,你要我帮你加吗?

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦2 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj2 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei2 天前
linux 系统目录详解
linux·运维·服务器