记一次nginx反向代理内网wordpress

记一次nginx反向代理内网wordpress

参考

nginx反向代理wordpress

nginx反向代理wordpress.conf

Nginx proxy_set_header 理解

说明

公网ip为 233.233.233.233
代理服务器内网ip为 10.10.10.10
wordpress内网服务器ip为 10.0.0.1
其中nginx代理服务器可以访问内网.
需要绑定的域名为abc.com,
但是目前域名未备案 所以只能绑定公网ip也就是233.233.233.233

第一种解决方案

不更改wordpress的home_url和site_url 这两个url保持原来的域名不变 在nginx代理服务器那层利用sub_filter 把域名进行替换

第二种解决方案

更改wordpress的home_url和site_url为新域名.并且传递正确的Host.

这里采用的是第二种解决方案.第一种解决方案实际上可以看上述的参考

代理服务器层 conf配置

1
2
3
4
5
location /{
proxy_pass http://10.0.0.1:80;
proxy_set_header Host 233.233.233.233; # 这里必须要传递正确的公网ip 公网ip如果有端口的加上端口 比如 233.233.233.233:3030
proxy_set_header X-Real-IP $remote_addr;
}

这里值得注意的就是proxy_set_header Host 233.233.233.233;

这里的Host如果用 proxy_set_header Host $host:$proxy_port;

那么这个$host:$proxy_port;解析后会变成10.10.10.10:80;

然而在wordpress中 我们的home_url和site_url绑定的是233.233.233.233 所以 这里不能使用$host:$proxy_port;否则会造成绑定域名不匹配 从而导致一些问题出现.

具体请参考Nginx proxy_set_header 理解