用caddy2做https反向代理,实际应用服务器是nginx,但没有配置ssl,应用程序是wordpress,如何解决mix content问题?

要解决 Caddy2 和 nginx 之间的混合内容问题,必须使用 HTTPS 终止,以便将所有流量强制转换为 HTTPS。

这可以通过在 Caddy2 中设置以下指令来实现:

# 将所有流量强制转换为 HTTPS
redir https://{host}{uri}

确保 Caddy2 配置文件中的这些指令位于要代理请求的域块之前。例如:

# 为 example.com 配置 HTTPS 终止
example.com {
    redir https://{host}{uri}
}
# 将请求代理到 nginx 上运行的 WordPress
proxy / localhost:8080 {
    header_upstream Host {host}
}

此外,还需要在 nginx 配置中启用 proxy_ssl_server_name 指令,以确保将正确的服务器名称发送到 WordPress 应用程序。

例如,在 nginx 配置文件中添加以下指令:

# 在 nginx 中启用 proxy_ssl_server_name
proxy_ssl_server_name on;

完成这些更改后,重新启动 Caddy2 和 nginx 服务,然后刷新 WordPress 页面。混合内容问题应该已得到解决。

Was this helpful?

0 / 0

发表回复 0