宝塔面板中,配置 https协议

该文章已生成可运行项目,

在前面的章节中,我们的接口 http://www.wenbaby.tech:8888/order/list 已经可以正常访问,

但是这里面存在两个安全隐患:1.http协议;2.8888端口号暴露。

本章节我们讲述:如何将我们的 http协议配置为https,并且将8888端口号代理到其默认端口443。

前提工作

1. 已购买过域名,且域名备案通过审核🎉;

2. 已购买过 SSL证书,且已在阿里云控制台中,绑定对应域名;

3. 宝塔面板搭建成功,可正常访问。

步骤

在阿里云SSL控制台,下载nginx证书

下载后得到 .key 和 .pem 文件

在宝塔面板首页,点击左侧菜单栏中的“网站”选项,找到您要安装SSL证书的网站域名,点击右侧的“设置”按钮

点击“SSL”选项卡,在“密钥”和“证书”文本框中,将下载好的 .key 和 .pem 文件内容粘贴进去,点击“保存”按钮,宝塔面板会自动进行配置并应用SSL证书到您的网站。

点击“配置文件”->“nginx配置”选项卡,配置nginx:

配置完成,此时打开 https://xxxxx.tech/order/list 就可以正常访问了。

复盘与思考

一、复盘

在springboot项目开发阶段,我们在服务器中一开始放行了 8888 端口号(在宝塔的【安全】菜单中)

随后给nginx加完配置后,当我们在浏览器直接访问:https://www.wenbaby.tech:8888/order/list 这个接口时,发现配置没有生效,无法正常访问。

一开始还以为是配置有误,后经确认发现了原因:

由于我们直接放行了后端服务的端口,导致请求直接绕过了 nginx ,直接走到了后端服务
 

事实上:

如果我们的链接直接暴露了端口号8888,其实是非常不安全的,我们需要做的是:

让用户在访问 https://xxxxx.tech时,即使没有了8888这个端口号,也能正常访问。

而 nginx 正好可以将我们的服务从8888代理到 https的默认端口号443上(只要协议是https,默认443的端口号可以不写)。
 

解决方案:

禁用掉后端服务 8888端口号,强行走nginx代理

二、思考:

宝塔中,java项目里面的nginx是干嘛的?

在宝塔面板里,如果你部署了一个 Java 项目,里面的 Nginx 可以简单理解为一个 “智能门卫”+“超级快递员”,它主要干两件大事:

第一件事:当 “智能门卫”—— 处理外部请求

  1. 对外暴露地址,让别人能访问你的项目
    你的 Java 项目运行在服务器内部(比如本地端口 8080),但外界无法直接访问这个内部地址。
    Nginx 就像在服务器门口挂了个 “门牌号”(比如 https://你的域名.com),当用户在浏览器输入这个网址时,Nginx 会把请求 “接住”,然后转发给背后的 Java 项目。

  2. 分流和过滤请求

    • 如果有多个 Java 项目(比如一个网站、一个后台管理系统),Nginx 可以根据请求的路径(比如 https://xxx.com/api 或 https://xxx.com/admin),把不同的请求 “分流” 到不同的项目上,就像保安按目的地指引访客。
    • 还能阻挡一些恶意请求(比如简单的黑客攻击),保护你的 Java 项目,相当于给服务器加了一层 “安全门”。

第二件事:当 “超级快递员”—— 优化访问速度

  1. 静态资源加速
    Java 项目里的图片、CSS、JS 等静态文件,每次都让 Java 程序处理会很慢。
    Nginx 可以 “承包” 这些静态文件的存储和发送,直接从自己的 “仓库” 里快速返回给用户,就像快递员直接从驿站取件,不用再跑去总站调货,速度更快。

  2. 抗高并发,防止服务器被压垮
    当很多用户同时访问时,Nginx 可以暂存一部分请求,按顺序排队处理(类似银行叫号系统),避免 Java 项目被瞬间涌来的请求 “冲垮”,保证项目稳定运行。
     

为什么 Java 项目需要 Nginx?

举个生活例子说明:假设你的 Java 项目是一家 “包子铺”,运行在厨房(服务器内部),但厨房不直接对外营业:

  • Nginx 就是包子铺的 “临街店面”
    • 顾客(用户)只能通过店面地址(域名)找到你,店面负责把顾客的订单(请求)传给厨房(Java 项目)。
    • 如果有很多顾客排队,店面可以先让他们在门口等着(暂存请求),厨房做好后再由店面统一分发(响应)。
    • 店里的包子样品(静态资源,如图片)可以直接放在店面展示,不用每次都让厨房现做(减少 Java 压力)。

总结:Nginx 在宝塔 + Java 中的核心作用

  • 对外:当入口,管路由,保安全
  • 对内:提速度,抗压力,省资源


    简单来说,有了 Nginx,你的 Java 项目就像住进了一个 “带前台和仓库的写字楼”,既能从容接待访客,又能高效处理业务。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值