Caddy 反向代理 跨域设置

5 min read

Caddy 可以很容易地实现反向代理和跨域设置。

反向代理

反向代理是指服务器接受客户端请求,然后将请求转发给后端的应用服务器,最后将其响应返回给客户端。这种反向代理设置可以让客户端看到的只是一个入口地址,而实际处理请求的后端应用服务器对客户端是透明的。

在 Caddy 中设置反向代理非常简单。只需要使用 reverse_proxy 指令,并将目标服务器的地址作为参数即可。

例如,如果要将 http://localhost:8000 的请求代理到 http://example.com,则可以按如下方式配置:

http://localhost:8000 {
    reverse_proxy http://example.com
}

跨域设置

跨域是指浏览器向一个不同的域名或端口发出 AJAX 请求,这种请求是被限制的,因为浏览器的同源策略。Caddy 可以帮助我们解决这个问题。使用 header 指令即可设置跨域访问。

在 Caddy 中设置跨域访问,只需要添加 header 指令并设置 Access-Control-Allow-Origin 响应头即可。

例如,如果希望允许所有来源的访问,可以按如下方式配置:

http://localhost {
    header / {
        Access-Control-Allow-Origin *
    }
}

这样就可以在客户端上跨域访问了。

注意:开放 Access-Control-Allow-Origin 的来源,会造成跨站脚本攻击 (Cross-Site Scripting,简称 XSS),所以开放时需要谨慎。