Nginx(http配置、https配置)访问Spring Boot 项目

news2025/4/22 20:47:22

前文

记录一下在linux服务器下配置nginx中nginx.conf文件代理访问springboot项目

1. spring boot.yml配置

其他mysql,redis,mybatis等之类的配置就不一一列出了

# 自定义配置 为了等下验证读取的配置文件环境
appName: product

server:
  port: 8083  # 应用服务 WEB 访问端口
  servlet:
    context-path: /api
    session:
      timeout: PT60M #session过期时间 60M 一个小时

2. nginx配置

查看nginx安装目录

whereis nginx

在这里插入图片描述

修改nginx.conf即可,一般配置文件都在**/usr/local/nginx/conf**目录下

2.1 https配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
  
    #access_log  logs/access.log  main;
  
    sendfile        on;
    #tcp_nopush     on;
  
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    #将服务所有的 http 请求转换为 https 请求
    server {
    	listen    80;
      # listen       8081; 
      # listen       443 ssl;
      listen        442 ssl;
      # 因为服务器没有完成备案导致我的80,443端口不能开放,所以我这里演示使用8081,442
      # 我的nginx配置文件上方的80端口是注释掉的,
      #你的域名,请不要带有http://或者https://
    	server_name  xxx.com;
      #charset koi8-r;

      #access_log  logs/host.access.log  main;
    
      location / {
            #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。  
            root html;
            index index.html index.htm;
        }
 
      #此处呼应 spring boot 应用内的 servlet.context-path 配置
      #说明: 如果你访问 www.xxxx.com/api 将会请求转发到服务器内的 127.0.0.1:8083 服务
      location /api {
      	    proxy_pass http://127.0.0.1:8083;
      	    proxy_set_header           Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;
            client_max_body_size  100m;
      }
    
      #说明: 这里模拟静态资源读取,示例请求url: http://www.xxxx.com/app_images/xxx.png
      #访问 www.xxxx.cn/app_images/xxx.png 会转发访问服务器内的绝对路径/usr/local/app_images/xxx.png
      location /app_images {
    	    root /usr/local;
      }       
    
      # error_page 错误页面  404              /404.html;
      # redirect server error pages to the static page /50x.html
      #
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
            root   html;
      }
    
    }

    
}

2.2 http配置

上传证书到conf目录下,创建一个cert文件夹方便管理
在这里插入图片描述
免费证书申请可以使用阿里云,腾讯云,https://freessl.cn/等

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
  
    #access_log  logs/access.log  main;
  
    sendfile        on;
    #tcp_nopush     on;
  
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    #将服务所有的 http 请求转换为 https 请求
    server {
    	listen    80;
      # 因为服务器没有完成备案导致我的80端口不能开放,所以我这里演示使用下面的8081
      # 我的nginx配置文件上方的80端口是注释掉的,
      # listen       8081; 
      #你的域名,请不要带有http://或者https://
    	server_name  xxxx.com;
      #charset koi8-r;

      #access_log  logs/host.access.log  main;
    
      location / {
            #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。  
            root html;
            index index.html index.htm;
        }
 
      #此处呼应 spring boot 应用内的 servlet.context-path 配置
      #说明: 如果你访问 www.xxxx.com/api 将会请求转发到服务器内的 127.0.0.1:8083 服务
      location /api {
      	    proxy_pass http://127.0.0.1:8083;
      	    proxy_set_header           Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;
            client_max_body_size  100m;
      }
    
      #说明: 这里模拟静态资源读取,示例请求url: http://www.xxxx.com/app_images/xxx.png
      #访问 www.xxxx.com/app_images/xxx.png 会转发访问服务器内的绝对路径/usr/local/app_images/xxx.png
      location /app_images {
    	    root /usr/local;
      }       
    
      # error_page 错误页面  404              /404.html;
      # redirect server error pages to the static page /50x.html
      #
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
            root   html;
      }
    }
}

2.3 访问测试

配置文件完成后切记重新启动nginx,我这里使用http配置代理端口为8081,所以浏览器输入域名:8081/api(spring boot中配置的context-path)/请求(Controller路径)

http方式测试

  • 访问nginx

在这里插入图片描述

  • 创建静态资源文件夹,上传一张图片进行测试
    在这里插入图片描述
    在这里插入图片描述
  • controller请求路径测试

在这里插入图片描述
可以看到我们使用http方式时,地址栏度提示的不安全链接

https:测试

把配置文件切换成https方式,重启nginx,目前备案还没完成,所以我这里需要使用域名:442进行访问
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c04b95ef29ea43c7b67932d5cf3910a5.png

在这里插入图片描述
使用https访问消除了不安全告警

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1901679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache Seata 高可用部署实践

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata 高可用部署实践 Seata 高可用部署实践 使用配置中心和数据库来实现 Seata 的高…

OpenAI突然停止中国API使用,出海SaaS产品如何化挑战为机遇?

2023年是AI爆发的年代,人工智能带来的信息裂变刷新了整个SaaS行业。在这个AI引领的时代,我们不应该单纯依赖工具本身,而是要理解如何将这些AI功能与行业相结合。 然而,上周OpenAI宣布禁止对中国提供API服务,有一些用户…

FreeU: Free Lunch in Diffusion U-Net——【代码复现】

这篇文章发表于CVPR 2024,官网地址:ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net (CVPR2024 Oral) (github.com) 一、环境准备 提前准备好python、pytorch环境 二、下载项目依赖 demo下有一个requirements.txt文件, pip inst…

ubuntu 22 安装 lua 环境 编译lua cjson 模块

在 windows 下使用 cygwin 编译 lua 和 cjson 简直就是灾难,最后还是到 ubuntu 下完成了。 1、下载lua源码(我下载的 5.1 版本,后面还有一个小插曲), 直接解压编译,遇到一个 readline.h not found 的问题,需要安装 re…

探索 SecureCRT:强大的终端 SSH 工具

SecureCRT 是一款功能强大、备受赞誉的终端 SSH 工具,适用于 Mac 和 Windows 操作系统,为用户提供了便捷、高效、安全的远程连接和管理体验。 SecureCRT 拥有直观友好的用户界面,即使是初次使用的用户也能迅速上手。其支持多种协议&#xff…

基于Python爬虫的城市二手房数据分析可视化

基于Python爬虫的城市二手房数据分析可视化 一、前言二、数据采集(爬虫,附完整代码)三、数据可视化(附完整代码)3.1 房源面积-总价散点图3.2 各行政区均价3.3 均价最高的10个小区3.4 均价最高的10个地段3.5 户型分布3.6 词云图四、如何更换城市一、前言 二手房具有价格普…

提高论文发表机会:Nature Communications 最新研究教你如何巧妙回复审稿意见

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 对于科研搬砖人来说,在论文投稿过程中,如何有效回复审稿意见才能得到审稿人的认可,一直是一个让人困惑又带点玄学的问题。 但是&#xff0c…

代码随想录算法训练Day57|LeetCode200-岛屿数量、LeetCode695-岛屿的最大面积

岛屿数量 题目描述 力扣200-岛屿数量 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此…

代码随想录-Day49

300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的 …

【数据结构(邓俊辉)学习笔记】高级搜索树01——伸展树

文章目录 1. 逐层伸展1. 1 宽松平衡1. 2 局部性1. 3 自适应调整1. 4 逐层伸展1. 5 实例1. 6 一步一步往上爬1. 7 最坏情况 2. 双层伸展2.1 双层伸展2.2 子孙异侧2.3 子孙同侧2.4 点睛之笔2.5 折叠效果2.6 分摊性能2.7 最后一步 3 算法实现3.1 功能接口3.2 伸展算法3.3 四种情况…

产品经理-工作流程及职能(6)

产品经理作为互联网项目的主心骨,连接着团队的所有成员(开发、设计、运营、测试、市场等) 用合理的产品规划和清晰的产品愿景带领大家前进,通过满足用户需求来创造属于自己的商业利益。 在通常情况下,PM需要对整个产品…

基于工业互联网的智慧矿山解决方案PPT(38页)

文章摘要 工业互联网与智慧矿山 基于工业互联网的新一代智慧矿山解决方案,将互联网和新一代IT技术与工业系统深度融合,形成关键的产业和应用生态,推动工业智能化发展。该方案以“四级、三层、两网、一平台”为总体框架,强调应用目…

深圳晶彩智能ESP32-2432S028R实时观察LVGL9效果

深圳晶彩智能ESP32-2432S028R概述: 深圳晶彩智能出品ESP32-32432S028R为2.8寸彩色屏采用分辨率320x240彩色液晶屏,驱动芯片是ILI9431。板载乐鑫公司出品ESP-WROOM-32,Flash 4M。型号尾部“R”标识电阻膜的感压式触摸屏,驱动芯片是…

容器:stack

以下是关于stack容器的一些总结: stack容器比较简单,主要包括: 1、构造函数:stack [staName] 2、添加、删除元素: push() 、pop() 3、获取栈顶元素:top() 4、获取栈的大小:size() 5、判断栈是否为空&#x…

深入刨析Redis存储技术设计艺术(二)

三、Redis主存储 3.1、存储相关结构体 redisServer:服务器 server.h struct redisServer { /* General */ pid_t pid; /* Main process pid. */ pthread_t main_thread_id; /* Main thread id */ char *configfile; /* Absolut…

图书管理系统 全栈项目分享

文章目录 项目简要说明项目开源地址b站视频演示技术栈部分效果展示 项目简要说明 本项目是我的数据库课设,个人感觉做得还行,目前项目开源,README文档里有项目的介绍和使用说明,这里就不一一赘述了 项目开源地址 github - libr…

nginx(三)—从Nginx配置熟悉Nginx功能

一、 Nginx配置文件结构 ... #全局块events { #events块... }http #http块 {... #http全局块server #server块{ ... #server全局块location [PATTERN] #location块{...}location [PATTERN] {...}}server{...}... #http全局块 …

NoSQL 之 Redis 配置与常用命令

一、关系型数据库与非关系型数据库 1、数据库概述 (1)关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记 录。 SQL 语句(标准数据查询语言&am…

ONLYOFFICE 8.1——全新桌面编辑器,相见恨晚

目录 前言 一、链接 ONLYOFFICE 8.1版本 官网下载链接: ONLYOFFICE 在线工具: 下载版本推荐: 二、使用体验 1. 界面设计: 2. 文档编辑功能: 3. 电子表格功能: 4. 演示文稿功能: 5.PDF编…

使用 AlphaZero 和 Tabu 搜索查找越来越大的极值图

使用 AlphaZero 和 Tabu 搜索查找越来越大的极值图 AlphaZero 方法最佳研究(第1部分) 文章目录 一、说明二、引言三、预备知识四、方法4.1 AlphaZero4.2 禁忌搜索 五、实验与结果六、讨论七、附录A 一个例子B 问题背景 一、说明 人工智能的树和图的检索问…