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 风格的封面图和关键词标签,让它更符合平台规范,你要我帮你加吗?

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
还是大剑师兰特5 天前
解决nginx错误:http://localhost:7000正常,http://localhost:7000/map 报错404
nginx·大剑师
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼5 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘5 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥5 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发