funnyJackPeng / yukunyuan-tools-feature

业务需求讨论的仓库,不涉及前后端代码
1 stars 0 forks source link

尝试在 mac mini 上面部署后端应用 #18

Open funnyJackPeng opened 2 months ago

funnyJackPeng commented 2 months ago

在用户量不大,且不用太考虑安全的前提下,可以尝试将应用部署到本机 mac mini 上面去,这样就只需要支付购买证书和域名的费用了。 简单问了一下 AI ,提供了一个初步方案:

我有一台 mac mini,然后想要在上面部署一个 spring boot 的 docker 应用,此应用可以接受 HTTPS 的流量,如何实现?

在 Mac mini 上部署 Spring Boot Docker 应用并接受 HTTPS 流量,你可以按照以下步骤操作:

1. 准备 Spring Boot 应用

FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8443
ENTRYPOINT ["java", "-jar", "app.jar"]
docker build -t spring-boot-app .

2. 配置反向代理

你可以使用 Nginx 或 Caddy 作为反向代理,将 HTTPS 流量转发到你的 Spring Boot 应用。

使用 Nginx:

brew install nginx
server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    location / {
        proxy_pass http://localhost:8443;
        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;
    }
}
sudo nginx -t
sudo nginx

使用 Caddy:

brew install caddy
your-domain.com {
  reverse_proxy localhost:8443
}
caddy start

3. 运行 Docker 容器

docker run -p 8443:8443 --name spring-boot-app-container spring-boot-app

4. 配置域名和 SSL 证书

完成以上步骤后,你就可以通过 HTTPS 访问你的 Spring Boot 应用了。例如:https://your-domain.com

funnyJackPeng commented 2 months ago

为了不影响公司的工作,此流程需要在购买 MacBook 后才进行尝试

hk6888 commented 2 months ago

这个主意很好,我们刚开始用户量肯定不是很大。这样就少了阿里云或华为云的支出了。 MacBook 的购买日程我们可以商量