如何通过子目录实现同一域名部署双站点及反向代理配置问题
解决Nginx反向代理配置问题,实现域名子目录映射
1. 修复localhost访问404的问题
你的Nginx配置中server_name whitepanda.io;仅匹配该域名的请求,localhost的请求不会进入这个server块,会走Nginx默认server(未配置默认时就会返回404)。如果是本地测试,需将localhost添加到server_name中:
server { listen 80; server_name whitepanda.io localhost; # 新增localhost # 其他配置保留 }
修改后访问localhost会匹配当前server块,不会出现404。
2. 修正/blogs路径的反向代理配置
直接代理到WordPress根目录会出现路径不匹配问题,因为WordPress不知道自身被部署在/blogs子目录下,需调整配置并传递正确头部,确保WordPress生成的链接、资源路径适配whitepanda.io/blogs:
server { listen 80; server_name whitepanda.io localhost; # 主站代理配置 location / { proxy_pass https://whitepanda-6c4b2.web.app; proxy_set_header Host whitepanda-6c4b2.web.app; 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; proxy_cache_bypass $http_upgrade; } # 博客子目录代理配置 location /blogs/ { proxy_pass https://trywhitepanda.com/; # 结尾的/确保路径映射:/blogs/xxx 对应 trywhitepanda.com/xxx proxy_set_header Host trywhitepanda.com; 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; # 替换响应中WordPress生成的域名链接 sub_filter 'https://trywhitepanda.com' 'https://whitepanda.io/blogs'; sub_filter_once off; sub_filter_types text/html text/css text/javascript application/javascript; } }
3. WordPress后台的关键设置
登录Hostinger的WordPress后台,修改以下配置适配子目录:
- 进入设置 > 常规:将**WordPress地址(URL)和站点地址(URL)**均改为
https://whitepanda.io/blogs - 进入设置 > 固定链接,重新保存一次规则,让WordPress更新路由配置
4. 验证与生效
- 执行
nginx -t检查配置语法是否合法 - 无错误则执行
systemctl restart nginx(或对应系统的重启命令)重启Nginx - 分别访问
whitepanda.io和whitepanda.io/blogs,确认主站、博客正常加载,且博客内部链接均保持whitepanda.io/blogs域名格式
内容的提问来源于stack exchange,提问作者Mirajul Islam
相关产品推荐
相关产品推荐

