今年在考虑使用前端Nuxt框架 + WordPress REST API来替代现有的WordPress主题。于是我以奥克兰大学CS732课程的作业为契机开始了这个项目。

由于需要将项目发布到公网展示,我使用了一个Docker容器的WordPress作为后端,然后使用Nginx反向代理到Docker容器暴露的端口。但是在部署时遇到了一些SSL上的问题。尤其是部分CSS不显示、后台无限重定向等。

站点设置网址为https

在WordPress后台的站点设置中,可以设置网站的URL。建议在前方声明为https。

解决CSS不显示、后台无限重定向

如果查看网络请求,发现一些js、CSS资源遇到了跨域问题,即在主站为https的情况下请求了http的js、CSS资源,或者出现了无限重定向,那么应当修改Nginx的反向代理规则,增加这一行代码:

proxy_set_header X-Forwarded-Proto $scheme;

这行代码在 Nginx 向上游服务器转发请求时,添加或更新一个名为X-Forwarded-Proto的HTTP请求头,其值为客户端请求所使用的协议(HTTP 或 HTTPS)。这对于上游服务器正确处理请求(尤其是在安全相关的决策,如重定向和cookie设置)非常重要。