sead 发表于 2020-7-28 14:26:05

PHP 如何高效反向代理wordpress?

本帖最后由 sead 于 2020-7-28 15:24 编辑

站群WP应用场景:
站群地址
wpdeom.com/1
wpdeom.com/2
wpdeom.com/...


PHP节点
www.aaa.com
www.bbb.com
...



#httpd.conf
# 反代80端口根据接收参数,设置_SERVER参数
SetEnvIf Ssl-Offloaded 1 HTTPS=on
SetEnvIf Server-Https SSL HTTPS=on
SetEnvIf X-Forwarded-Proto https HTTPS=on


#wp-config.php
#80端口下,WP激活https
#$home ,$siteurl 软修改WP的网址参数,实现连接变更
if ($_SERVER['HTTP_X_FORWARDED_PROTO']=='https') {
    $_SERVER['HTTPS'] = 'on';
}
if ($_SERVER['HTTP_X_FORWARDED_HOST']) {
    $scheme = 'http://';
    if ($_SERVER['HTTPS']=='on') { $scheme = 'https://' ;}
    $home = $scheme.$_SERVER['HTTP_X_FORWARDED_HOST'];
    $siteurl = $scheme.$_SERVER['HTTP_X_FORWARDED_HOST'];
    define('WP_HOME', $home); define('WP_SITEURL', $siteurl); }

最后PHP curl转发时带上HTTP_X_FORWARDED_HOST, HTTP_X_FORWARDED_PROTO
这样拿到的数据无需做文本层面的地址替换,目前没搞定的是cookie/Session方面的转发,也没深入研究
如果这块弄好了,PHP代理就能实现用户交互(搞这么多用nginx不就得了。。)




河小马 发表于 2020-7-28 14:43:23

reverse p!r!o!x!y两个神器
nginx 和 hap!r!o!x!y

nginx 是第七层的,hap!r!o!x!y 是第四层的

都不需要动wp-config.php

sead 发表于 2020-7-28 15:04:56

河小马 发表于 2020-7-28 14:43
reverse p!r!o!x!y两个神器
nginx 和 hap!r!o!x!y



这个我PHP反向代理用的,比如WP现在的网址是a.aaa.com或者aaa.com/1, PHP访问节点是ww.bbb.com, 如果不修改WP_SITEUL,WP的地址怎么办?

sead 发表于 2020-7-28 15:06:55

河小马 发表于 2020-7-28 14:43
reverse p!r!o!x!y两个神器
nginx 和 hap!r!o!x!y



内容没写好:lol 让河大大误解了

sead 发表于 2020-7-28 15:52:25

本帖最后由 sead 于 2020-7-28 15:59 编辑

河小马 发表于 2020-7-28 14:43
reverse p!r!o!x!y两个神器
nginx 和 hap!r!o!x!y


WP的返回地址根据后台设置生成在html里面,像Nginx代理用正则可以搞定。头疼的是怕JS里面也有地址方面的参数,需要写比较复杂的正则,写不好就出BUG了。问题是正则再好也搞不定这种情况:假如WP JS 有分段 "https:\/\/" + "www.deom.com"这种写法不连一起是最头疼的, 保险起建才修改了wp-config,根源上解决问题
页: [1]
查看完整版本: PHP 如何高效反向代理wordpress?