SpringBoot整合Nginx实现反向代理、负载均衡与HTTPS配置

 更新时间:2026年07月20日 08:38:21   作者:张老师技术栈  
还在为SpringBoot生产部署发愁?本文手把手教你用Nginx搞定反向代理、负载均衡和HTTPS证书配置,还有WebSocket支持和静态资源缓存优化,让你的应用安全又高效,需要的朋友赶紧收藏

生产环境中,SpringBoot 一般不直接暴露端口给用户,前面都会加一层 Nginx。Nginx 负责反向代理、负载均衡、SSL 证书、静态资源缓存等。

一、反向代理

基本配置:

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

二、负载均衡

upstream seckill_backend {
    # weight 越大,分配到的请求越多
    server 192.168.1.101:9090 weight=3;
    server 192.168.1.102:9090 weight=2;
    server 192.168.1.103:9090 weight=1;
}
server {
    listen 80;
    location / {
        proxy_pass http://seckill_backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

三、HTTPS

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.example.com
server {
    listen 443 ssl;
    server_name api.example.com;
    ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:9090;
    }
}

四、WebSocket 支持

location /ws {
    proxy_pass http://127.0.0.1:9090;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_read_timeout 300s;
}

五、静态资源缓存

location /static/ {
    root /opt/app/;
    expires 7d;
    add_header Cache-Control "public, immutable";
}

六、安全与限流

# 限制同一 IP 每秒最多 10 个请求
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
        proxy_pass http://127.0.0.1:9090;
    }
}

到此这篇关于SpringBoot整合Nginx实现反向代理、负载均衡与HTTPS配置的文章就介绍到这了,更多相关SpringBoot整合Nginx内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java类加载器ClassLoader详解

    Java类加载器ClassLoader详解

    这篇文章主要介绍了Java类加载器ClassLoader,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Java单例模式的知识点详解

    Java单例模式的知识点详解

    在本篇文章里小编给大家整理的是关于Java单例模式的知识点详解,有兴趣的朋友们可以学习参考下。
    2020-02-02
  • 使用ProGuard混淆JavaWeb项目代码的操作步骤

    使用ProGuard混淆JavaWeb项目代码的操作步骤

    在开发JavaWeb应用时,为了保护源代码不被轻易反编译和阅读,通常会采用代码混淆技术,ProGuard是一个广泛使用的免费工具,可以用来优化、缩小和混淆Java字节码,本文将详细介绍如何使用ProGuard对JavaWeb项目进行代码混淆,需要的朋友可以参考下
    2025-05-05
  • Spring Boot + Spring Batch 实现批处理任务的详细教程

    Spring Boot + Spring Batch 实现批处理任务的详细教程

    这篇文章主要介绍了Spring Boot+Spring Batch实现批处理任务,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 通过实例解析Spring Ioc项目实现过程

    通过实例解析Spring Ioc项目实现过程

    这篇文章主要介绍了Spring Ioc项目实践过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • SpringBoot注册FilterRegistrationBean相关情况讲解

    SpringBoot注册FilterRegistrationBean相关情况讲解

    这篇文章主要介绍了SpringBoot注册FilterRegistrationBean相关情况,借助FilterRegistrationBean来注册filter,可以避免在web.xml种配置filter这种原始的写法
    2023-02-02
  • Java线程编程中的主线程讲解

    Java线程编程中的主线程讲解

    这篇文章主要介绍了Java线程编程中的主线程,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • java的NIO管道用法代码分享

    java的NIO管道用法代码分享

    这篇文章主要介绍了java的NIO管道用法代码分享,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Spring Cloud入门教程之Zuul实现API网关与请求过滤

    Spring Cloud入门教程之Zuul实现API网关与请求过滤

    这篇文章主要给大家介绍了关于Spring Cloud入门教程之Zuul实现API网关与请求过滤的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-05-05
  • Java 中的 DataInputStream 介绍_动力节点Java学院整理

    Java 中的 DataInputStream 介绍_动力节点Java学院整理

    DataInputStream 是数据输入流。它继承于FilterInputStream。接下来通过本文给大家介绍Java 中的 DataInputStream的相关知识,需要的朋友参考下吧
    2017-05-05

最新评论