部署

Spring Boot + Nginx:从 8080 到 HTTPS

一个很常见的生产部署方式,是让 Spring Boot 只监听本机端口,例如 127.0.0.1:8080,然后由 Nginx 对外提供 80/443。

为什么不直接把 8080 暴露出去?

Nginx 更适合处理域名、TLS、静态资源、压缩、限流和反向代理;而业务应用专注处理接口和业务逻辑。职责分开以后,证书续期和域名切换也更容易。

Internet
   ->
Nginx :443
   ->
127.0.0.1:8080
   ->
Spring Boot

一个最小反向代理

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

应用只需要保证本机端口可用,对公网暴露的入口统一由 Nginx 管理。

返回文章列表开发者工具