Nginx

一、Nginx 简介

1. 什么是 Nginx?

Nginx(Engine X)是一款高性能的 Web 服务器 ​ 和 反向代理服务器 ,由俄罗斯工程师 Igor Sysoev 开发,采用 C 语言编写。

2. Nginx 的三大核心作用

  • 反向代理:Nginx 接收客户端请求,再转发给后端服务器

  • 负载均衡:将请求分发到多台 Tomcat / 应用服务器

  • 动静分离:静态资源由 Nginx 直接处理,减轻后端压力


二、Nginx 安装与启动

1. 安装步骤(CentOS)

复制代码
# 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 nginx-1.10.0
./configure --prefix=/usr/local/nginx

# 4. 编译并安装
make && make install

2. 目录结构说明

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

3. 常用命令

复制代码
cd /usr/local/nginx/sbin

# 启动
./nginx

# 停止
./nginx -s stop

# 重新加载配置
./nginx -s reload

三、反向代理配置

反向代理是指 客户端访问 Nginx,Nginx 再转发请求给后端服务

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

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

📌 效果:

访问 http://localhost→ 实际访问 http://127.0.0.1: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 丢失问题如何解决?

✅ 推荐方案:Redis + Session

  • Redis 与 Session 都是 K-V 结构

  • 支持过期时间

  • 高可用、性能优

❌ 不推荐方案:

  • ip_hash(服务器宕机仍可能丢失)

  • Session 复制(集群规模大时性能差)


五、动静分离配置

动静分离:

👉 静态资源由 Nginx 直接返回

👉 动态请求转发给 Tomcat

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

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

📌 适用场景:

  • 图片服务器

  • 前端静态站点

  • CDN 源站


六、总结

✅ Nginx 是高性能服务器

✅ 常用于 反向代理 + 负载均衡 + 动静分离

✅ 生产环境强烈建议使用 Redis 解决 Session 共享问题

如果你觉得这篇文章对你有帮助,欢迎 点赞 + 收藏 + 关注​ 👍

后续我会继续更新 Nginx 高级配置与高可用方案。

相关推荐
孫治AllenSun1 小时前
【Nginx】配置参数和使用案例
运维·nginx
啵啵鱼爱吃小猫咪3 小时前
Ubuntu 20.04 + ROS Noetic 源码安装 libfranka 0.8.0 和 franka_ros 0.8.0 完整教程
linux·运维·ubuntu
Piko6143 小时前
锐捷 VSU 虚拟化堆叠配置
运维·网络·笔记
ljs6482739514 小时前
Linux运维实操:vi编辑器永久配置静态IP(CentOS系列)
linux·运维·编辑器
2301_780303904 小时前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析
AOwhisky4 小时前
Python 学习笔记(第三期)——流程控制:条件判断与循环结构
运维·笔记·python·学习·云原生·流程控制·循环
IpdataCloud4 小时前
AI生成的Avalon恶意框架怎么防?用IP离线库识别模块化C2通信
运维·人工智能·网络协议·tcp/ip·ip
极客先躯4 小时前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试
brave_zhao5 小时前
nginx的进程架构
java·学习·nginx
Waay5 小时前
Linux 三个核心环境变量配置文件、作用域、生效方式完整梳理
linux·运维·学习·云原生·容器