Nginx部署SpringBoot项目的实现

yizhihongxing

Nginx是一款高性能的Web服务器和反向代理服务器,目前被广泛应用于各种Web应用中。在Spring Boot应用的部署过程中,Nginx可用于反向代理静态资源,同时将请求转发到Spring Boot应用程序。本文将详细演示如何在Nginx中部署Spring Boot项目。

前置需求

在开始本攻略前,需要满足以下要求:

  • 已经安装了Spring Boot。
  • 已经安装了Nginx 1.9.0或以上版本。
  • 已经获得了域名和SSL证书。

步骤一:配置Spring Boot

  1. 打开Spring Boot项目的application.properties文件,增加以下配置:
server.port=8080
server.tomcat.remote_ip_header=x-forwarded-for
server.tomcat.protocol_header=x-forwarded-proto
  • server.port可以根据具体的需求设置。
  • server.tomcat.remote_ip_headerserver.tomcat.protocol_header会在后面的Nginx配置中使用,在这里配置可以确保反向代理对IP和协议的处理正确。

  • 构建并运行Spring Boot应用程序:

./mvnw spring-boot:run

现在应用程序已经在端口8080上启动了。可以访问http://localhost:8080/,检查应用程序是否正常运行。

步骤二:Nginx反向代理

  1. 在Nginx配置文件nginx.conf中增加以下配置:
server {
    listen 443 ssl;
    server_name YOUR_DOMAIN_NAME;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}
  • YOUR_DOMAIN_NAME是指使用的域名。
  • fullchain.pemprivkey.pem是SSL证书文件的路径。
  • proxy_pass表示将所有请求转发到Spring Boot应用程序的地址。
  • proxy_set_header设置请求头,确保应用程序正确处理反向代理信息。

  • 输入以下命令验证Nginx配置文件是否正确:

sudo nginx -t

如果输出信息中没有错误,则表明配置文件正确。

  1. 重新启动Nginx服务器使配置生效:
sudo systemctl restart nginx

现在应用程序已经可以通过Nginx进行反向代理。访问https://YOUR_DOMAIN_NAME/,应用程序应该可以正常访问。

示例一:将静态资源部署在Nginx中

有些静态资源比如HTML、CSS、JS等,可以直接部署在Nginx服务器中提高访问速度。在这个示例中,我们将静态资源部署在Nginx中,同时将请求转发到Spring Boot应用程序。

  1. 在Spring Boot项目的src/main/resources/static目录下创建index.html文件。

  2. 在Nginx配置文件nginx.conf中增加以下配置:

server {
    listen 443 ssl;
    server_name YOUR_DOMAIN_NAME;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }

    location /static/ {
        root /path/to/static/;
        expires 7d;
    }
}
  • location /static/表示Nginx将处理所有以/static/开头的请求。
  • root是静态资源的路径。
  • expires表示将缓存静态资源7天。

  • 在Nginx静态资源目录中创建一个static目录,并将index.html文件放在static目录中。

  • 重新启动Nginx服务器。

现在可以通过访问https://YOUR_DOMAIN_NAME/static/index.html来访问静态资源。同时,Spring Boot应用程序也可以通过https://YOUR_DOMAIN_NAME来访问。

示例二:使用Docker部署Spring Boot项目

使用Docker可以提高应用程序的可移植性和伸缩性。在这个示例中,我们将使用Docker部署Spring Boot项目。

  1. 在Spring Boot项目的根目录下创建Dockerfile文件。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
  • openjdk:8-jdk-alpine是使用的Java镜像。
  • ADD指令将target目录下的所有jar包添加到镜像中。
  • EXPOSE指令暴露应用程序的端口。
  • ENTRYPOINT指令设置启动应用程序的命令。

  • 在命令行中输入以下命令构建Docker镜像:

docker build -t YOUR_IMAGE_NAME .
  • YOUR_IMAGE_NAME是指镜像的名称。

  • 在命令行中输入以下命令运行Docker容器:

docker run -d -p 8080:8080 -t YOUR_IMAGE_NAME
  • -d参数表示在后台运行容器。
  • -p参数将Docker容器的8080端口映射到主机的8080端口。
  • -t参数指定镜像的名称。

现在可以使用https://YOUR_DOMAIN_NAME:8080来访问应用程序。

结论

使用Nginx反向代理Spring Boot项目可以提高应用程序的稳定性和安全性,同时使得应用程序更容易扩展和管理。在本文中,我们详细介绍了如何在Nginx中部署Spring Boot项目,同时提供了两个示例,包括将静态资源部署在Nginx中和使用Docker部署Spring Boot项目。希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx部署SpringBoot项目的实现 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx+负载均衡+keepalive+双机热备

    最近搭建keepalived双机热备, 在网上博采众之所长, 整理一下自己的笔记! 在新搭建的centos6.x下最好下载一下阿里云的源配置:   centos:http://mirrors.aliyun.com/help/centos 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Ce…

    Nginx 2023年4月12日
    00
  • 在已编译安装nginx上动态添加模块

    一、添加nginx模块 找到安装nginx的源码根目录,如果没有的话下载新的源码 wget http://nginx.org/download/nginx-1.8.1.tar.gz 查看ngixn版本极其编译参数 ../sbin/nginx -V nginx version: nginx/1.8.1 built by gcc 4.8.5 20150623 (…

    Nginx 2023年4月10日
    00
  • win10下启动nginx出现闪退问题

    我的情况: 1、我的nginx原本安装在D盘,安装全路径没有中文 2、安装的版本是nginx-1.20.2(应该影响不大) 3、启动nginx后就马上闪退,无反应,进程中也没有nginx 4、logs中没有出现日志,端口也没发现占用(改过nginx.conf) ,配置文件应该不会有问题 死活启动不了,看网上都在说端口问题,还有一种说路径有中文,最后就是配置文…

    Nginx 2023年4月11日
    00
  • Nginx 启动脚本/重启脚本代码

    为了方便管理和操作 Nginx,我们可以使用启动脚本和重启脚本来启动和重启 Nginx 服务。 下面是一个 Nginx 启动脚本的示例: #!/bin/bash # 启动 Nginx /usr/local/nginx/sbin/nginx 这个脚本做的事情很简单,就是启动 /usr/local/nginx/sbin/nginx 这个可执行文件,也就是启动 N…

    Nginx 2023年5月16日
    00
  • linux服务器nginx的卸载和安装

    刚接触的linux服务器上,nginx配置乱的有点令人发指,就把老的卸载了重新装一下。 卸载 linux有一系列的软件管理器,比如常见的linux下的yum、Ubuntu下的apt-get等等。通过这些软件管理器可以很快的卸载软件,并且不会有文件及配置残留。这里我使用的是yum,命令如下 yum remove nginx 安装 相比于卸载,安装就相对麻烦了,…

    Nginx 2023年4月9日
    00
  • nginx centos 服务开机启动设置实例详解

    以下是“nginx centos 服务开机启动设置实例详解”的完整攻略,包含两条示例说明。 背景 在 CentOS 系统上部署网站时,经常会使用 Nginx 作为 Web 服务,也需要将 Nginx 设置为开机自启动,以确保网站服务可以在服务器重启后自动启动。本篇攻略将详细介绍 nginx centos 服务开机启动设置实例的过程。 步骤 第一条实例 步骤1…

    Nginx 2023年5月16日
    00
  • 最简单nginx配置

      useradd nginx passwd nginx yum install pcre  pcre-develtar -zxvf nginx-1.8.0.tar.gzcd nginx-1.8.0./configure –prefix=/app/nginx-1.8.0  –user=nginx  –group=nginx –with-http_ss…

    Nginx 2023年4月12日
    00
  • 详解Nginx location 匹配规则

    下面是“详解Nginx location 匹配规则”的完整攻略。 基本概念Nginx 的 location 匹配规则是根据请求 URI 进行匹配的。URI 匹配规则如下: = 开头表示精确匹配。例如,location = /path 表示仅匹配请求路径为 /path 的请求; ~ 开头表示按正则表达式匹配。例如,location ~ .txt$ 表示匹配请求…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部