WordPress使用nginx反向代理并且开启SSL,导致前台样式丢失,后台无法登录的解决办法

如题,使用nginx对WordPress进行反向代理,最终出现了两个情况。

网站首页能正常访问,但是样式丢失,浏览器查看网络情况,发现样式请求的依然是http资源。
管理后台无法访问,提示重定向次数太多。
解决方法如下
一、强制开启SSL
找到WordPress所在目录,如【/www/wwwroot/192.168.1.135】,修改wp-config.php,加入如下代码,注意填写自己的域名。

$_SERVER[‘HTTPS’] = ‘on’;
define(‘FORCE_SSL_ADMIN’, true);
define(‘FORCE_SSL_LOGIN’, true);
define(‘WP_HOME’, ‘https://xxxxx.com’);
define(‘WP_SITEURL’, ‘https://xxxxx.com’);
此时网站前台能正常访问,样式正常。管理后台能访问,但是丢失样式。

接着进行第二部操作。

二、强制跳转https
找到WordPress所在目录,修改wp-includes目录下的functions.php文件。
找到以下代码(大概在第8行)

require( ABSPATH . WPINC . ‘/option.php’ );
在下方添加以下代码:

add_filter(‘script_loader_src’, ‘agnostic_script_loader_src’, 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
add_filter(‘style_loader_src’, ‘agnostic_style_loader_src’, 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
修改后重启WordPress,一切正常。

Cloudflare搭建DDNS(脚本版)

自建DDNS解决动态IP服务器访问问题
  • 把域名接入cloudflare

  • 获取Global API Key

  • 设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

  • 下载 DDNS 脚本

  • 修改 DDNS 脚本并补充相关信息

  • 设置定时任务

把域名接入cloudflare

打开cloudflare,登陆账号添加网站按照提示操作

获取Global API Key

访问 https://dash.cloudflare.com/profile在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来 ,在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来

1
设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

添加一条A记录,例如:hkt.test.com,Proxy status设置成DNS only

2
下载 DNNS 脚本
curl https://raw.githubusercontent.com/aipeach/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh > /root/cf-v4-ddns.sh && chmod +x /root/cf-v4-ddns.sh
修改 DDNS 脚本并补充相关信息
vim cf-v4-ddns.sh
# incorrect api-key results in E_UNAUTH error
# 填写 Global API Key
CFKEY=

# Username, eg: user@example.com
# 填写 CloudFlare 登陆邮箱
CFUSER=

# Zone name, eg: example.com
# 填写需要用来 DDNS 的一级域名
CFZONE_NAME=

# Hostname to update, eg: homeserver.example.com
# 填写 DDNS 的二级域名(只需填写前缀)
CFRECORD_NAME=
设置定时任务

首次运行脚本,输出内容会显示当前IP,进入cloudflare查看 确保IP已变更为当前IP

./cf-v4-ddns.sh

定时任务

crontab -e
*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1

# 如果需要日志,替换上一行代码
*/2 * * * * /root/cf-v4-ddns.sh >> /var/log/cf-ddns.log 2>&1

Amazon Route 53如何实现自动故障转移和恢复

Amazon Route 53 中,你可以使用 健康检查(Health Checks)+ 失效转移(Failover Routing) 方式来实现自动故障转移和恢复。以下是详细步骤:


📌 1. 创建健康检查

步骤

  1. 登录 AWS 控制台,进入 Route 53 控制面板。
  2. 在左侧导航栏,选择 Health Checks(健康检查)
  3. 点击 Create health check(创建健康检查)
  4. 填写健康检查信息:
    • 名称:填写一个唯一的名称,例如 MyServerHealthCheck
    • Monitor Endpoint(监测端点)
      • 选择 IP 地址,输入要监测的服务器 IP
      • 端口号(例如 80443
      • 选择健康检查类型
        • HTTP / HTTPS(建议选择 HTTPS 以提高安全性)
    • Failure Threshold(失败阈值):设置触发故障的次数(默认 3 次)。
    • Request Interval(请求间隔):建议 30s(默认)。
    • Invert Health Check Status(反转健康检查状态)(可选):如果希望状态反向,可以选中。
  5. 配置 SNS 通知(可选):
    • 你可以启用 SNS 以在服务器宕机或恢复时收到通知。
  6. 点击 Create(创建)

🔹 ✅ 这样,Route 53 会定期检查服务器 IP 是否正常工作。如果该 IP 宕机,健康检查会标记为 unhealthy(不健康)。


📌 2. 配置 DNS 记录进行自动故障转移

  1. Route 53 控制台,进入 你的域名
  2. 选择 Record Sets(记录集),点击 Create Record Set(创建记录集)
  3. 配置 A 记录(IPv4)或 AAAA 记录(IPv6),针对每个 IP 设置如下:
    • Name(名称):留空或填写子域名(如 www)。
    • Type(类型):A(IPv4)或 AAAA(IPv6)。
    • Alias(别名):No。
    • TTL(缓存时间):建议 60 秒(短 TTL 可加快故障切换)。
    • Routing Policy(路由策略)
      • 选择 Failover(故障转移)。
    • Failover Record Type(故障转移记录类型)
      • 对于 主 IP(例如 192.168.1.1),选择 Primary(主)。
      • 对于 备用 IP(例如 192.168.1.2),选择 Secondary(备用)。
    • Associate with Health Check(关联健康检查)
      • 选中 Yes,并选择 之前创建的健康检查
  4. 重复上述步骤,为所有服务器 IP 添加健康检查和故障转移设置。

📌 3. 故障转移逻辑

  • 正常情况:Route 53 会解析所有 健康(healthy) 状态的 IP。
  • 某个 IP 宕机:Route 53 自动从解析列表中移除该 IP,并将流量转移到其他健康 IP。
  • IP 恢复:Route 53 自动重新解析该 IP,让它恢复上线。

📌 4. 其他优化(可选)

使用 Weighted Routing(加权路由)

如果你想让流量分配到多个 IP,但仍然具有故障转移功能,可以使用 加权路由(Weighted Routing)+ 健康检查

  • 配置 每个 IP 的权重,如 30%、30%、40%
  • 仍然关联 健康检查,宕机时 Route 53 自动调整流量分配

✅ 总结

  1. 创建 Route 53 健康检查,监控服务器 IP 是否存活。
  2. 在 DNS 解析中设置故障转移(Failover Routing),主服务器宕机时自动切换到备用 IP。
  3. 当 IP 恢复后,Route 53 会自动重新解析,让其恢复上线。

这样,你就可以实现 自动下线宕机 IP,并在服务器恢复后 自动上线。🚀

rockylinux8 批量替换文件夹下面所有html的文件的指定网址

Rocky Linux 8 上,可以使用 sed 命令批量替换指定网址,并配合 find 命令处理所有 HTML 文件。

示例命令:

find /path/to/directory -type f -name "*.html" -exec sed -i 's|旧网址|新网址|g' {} +

命令解析:

  • find /path/to/directory -type f -name "*.html"
    • 查找 /path/to/directory 目录下所有 .html 文件。
  • -exec sed -i 's|旧网址|新网址|g' {} +
    • 使用 sed 进行 就地修改(-i),将 旧网址 替换为 新网址
    • s|旧网址|新网址|g:替换所有匹配的内容。
    • {} 代表 find 结果的文件名,+ 使 find 传递多个文件,提高效率。

示例

假设你要替换 /var/www/html 目录下所有 HTML 文件里的 http://old.example.comhttps://new.example.com,命令如下:

find /var/www/html -type f -name "*.html" -exec sed -i 's|http://old.example.com|https://new.example.com|g' {} +

如果你需要更强大的替换功能,可以用 perl

find /var/www/html -type f -name "*.html" -exec perl -pi -e 's|http://old.example.com|https://new.example.com|g' {} +

注意:

  • 建议先备份文件,以防替换出错:
    cp -r /var/www/html /var/www/html_backup
    
  • sed 可能对一些特殊字符(如 /&)敏感,可以用 | 代替 / 作为分隔符,避免转义符 \

如果有更复杂的需求,可以告诉我具体情况,我帮你优化命令。 😊

Linux 查看网卡实时网速以及 nload 命令详解

1.使用 nload 工具查看

复制代码
安装工具

yum install -y epel-release #先安装epel软件库
yum install -y nload #再安装nload

# 查看所有网卡实时网速
sudo nload -m

# 查看指定网卡实时网速
sudo nload eth0 -m
复制代码

 

nload 默认分为上下两块:
上半部分:Incoming也就是进入网卡的流量
下半部分:Outgoing,也就是从这块网卡出去的流量

参数详情表

参数 描述
Curr 当前流量
Avg 平均流量
Min 最小流量
Max 最大流量
Ttl 总和流量

 

 

注:小写代表bit,大写代表byte

Bit(比特)是存储单元;Byte(字节)是计量单位,查看网络时常用Byte

1Byte=8Bit
比如:网速计算
我们常说的家庭网速为10M,100M,其值为带宽,转换为Byte为
下载速度从理论上来说,应该是带宽的八分之一
10M=1280kb/s 100M=12800kb/s=12.5Mb/s

 

参考地址:https://blog.csdn.net/m0_58292366/article/details/125145915

 

 

2.通过 ifconfig 实时查看

watch -n 1 ifconfig

 

3.通过脚本查看

复制代码
#!/bin/bash

awk 'BEGIN{
OFMT="%.3f";
devf="/proc/net/dev";
while(("cat "devf) | getline)
{
    if($0 ~ /:/ && ($10+0) > 0)
    {
        split($1,tarr,":");
        net[tarr[1]]=$10+tarr[2];
        print tarr[1],$10+tarr[2];
    }
}
close(devf);

icount=0
while((system("sleep 1")) >=0)
{
   icount +=1
    system("clear");
    while( getline < devf )
    {
        if($0 ~ /:/ && ($10+0) > 0)
            {
                split($1,tarr,":");
                if(tarr[1] in net)
                {
                    print tarr[1],":",($10+tarr[2]-net[tarr[1]])*8/1024,"kb/s";
                    net[tarr[1]]=$10+tarr[2];
                }      
            }   
    }
    close(devf);
   if (icount>100)
    {break;}
}
}'
复制代码
icount=计数100次之后自动退出。

 

4.通过下载源文件,本地编译安装 nload

复制代码
yum install wget  #安装wget下载工具
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz  #下载 nload-0.7.4.tar.gz
tar zxvf nload-0.7.4.tar.gz  #解压这个压缩包
cd nload-0.7.4  #进入解压后的文件目录
yum install gcc gcc-c++ ncurses-devel  #安装依赖库
./configure #检测你的安装平台的目标特征的
make  #编译
make install  #安装
复制代码

 

5.scp 命令测试

A 机器请求 B 机器的数据,经常遇到超时。A机器带宽可能有限制,排查带宽的时候,又不能安装程序。这时候可以考虑 scp 命令。

通过 在 A 机器上 从B 机器上拉去文件,观察是否能正常拉取,以及拉取完成 的耗时,平均网速,来知晓机器带宽情况。

 

scp upchina@172.16.9.227:/usr/local/app/taf/app_log/algo/FactorTsbReadServer/2530318728.log  abc.log

 

scp命令解释。

scp 将   B机器文件,拷贝到  本机

scp    用户名@机器地址+目标文件地址+文件名    本机目录+本机文件名

scp username@remote:/path/to/remote/file /path/to/local/directory

 

 

scp 命令可以参考:https://www.cnblogs.com/abel-he/p/16502825.html

各种转发协议方案对比 gost,iptables,brook,caddy,ehco,socat,realm,v2ray,iperf3,haproxy,tinyportmapper

这些工具各有优劣,适用于不同的场景。下面是对它们的 优缺点稳定性 的评价:


1. gost (GO Simple Tunnel)

优点:

  • 多协议支持:支持 TCP/UDP/SOCKS5/HTTP/HTTPS/Relay 等多种协议。
  • 高性能:基于 Go 语言,性能较好,占用资源较低。
  • 配置灵活:支持链式代理,适合复杂的代理环境。

缺点:

  • 文档较少:配置相对复杂,官方文档不够详细。
  • UDP 可能不稳定:在某些网络环境下 UDP 转发不稳定。

📊 稳定性:★★★★☆(一般较稳定,但复杂配置可能有坑)


2. iptables

优点:

  • 内核级转发,性能最高,几乎无额外开销。
  • 稳定性极高,几乎不会崩溃。
  • 全局生效,可以用于系统所有流量。

缺点:

  • 配置复杂,新手不容易上手。
  • 难以进行高级协议解析,仅限于简单的端口转发和 NAT 规则。
  • 不支持用户级转发,只能在 root 权限下使用。

📊 稳定性:★★★★★(极高)


3. brook

优点:

  • 轻量级,占用资源少,适合小型服务器或低性能设备。
  • 自带加密,适合防火墙较严的环境。
  • 支持 TCP/UDP,适用于 P2P 和流媒体等应用。

缺点:

  • 功能较少,主要用于简单代理,不适合复杂转发需求。
  • 不支持链式代理,难以灵活搭配其他代理工具。

📊 稳定性:★★★☆☆(适用于小型环境,但大流量情况下可能不稳定)


4. caddy

优点:

  • 主要是 Web 服务器,自带 HTTPS,适合搭配反向代理。
  • 配置简洁,适合 HTTPS + 反向代理 + WebSocket 场景。
  • 支持自动 TLS 证书管理,减少配置复杂度。

缺点:

  • 不适合复杂端口转发,更适合作为 Web 服务器或 HTTP 反向代理。
  • UDP 支持有限,不适合 UDP 代理。

📊 稳定性:★★★★★(适用于 Web 代理,其他用途受限)


5. ehco

优点:

  • 轻量级,基于 Rust 开发,资源占用低。
  • 支持 TCP/UDP,适用于流量转发和负载均衡。
  • 简单易用,仅需一条命令即可完成端口转发。

缺点:

  • 功能单一,主要用于 TCP/UDP 端口转发,不支持复杂协议。
  • 开发较新,生态较小,社区支持不如其他成熟方案。

📊 稳定性:★★★★☆(相对稳定,但功能有限)


6. socat

优点:

  • 功能强大,支持 TCP/UDP/Unix Socket/TTY/SSL 等各种协议。
  • 轻量级,仅依赖系统本身,几乎无额外资源消耗。
  • 非常灵活,适用于端口转发、协议转换、数据流重定向等。

缺点:

  • 配置复杂,参数繁琐,不易上手。
  • 不支持流量控制,可能导致大流量下不稳定。

📊 稳定性:★★★☆☆(轻量但大流量下不够稳定)


7. realm

优点:

  • 专注于流量转发,支持 TCP/UDP/HTTP/SOCKS5。
  • 支持多路复用,适合高并发代理环境。
  • 有较好的文档,上手相对容易。

缺点:

  • 生态较小,社区支持不如 v2ray/gost。
  • 开发较新,长期稳定性待观察

📊 稳定性:★★★★☆(较为稳定,但长期可靠性待观察)


8. v2ray

优点:

  • 功能强大,支持 VMess/VLESS/SOCKS/HTTP/MTProto 等多种协议。
  • 抗封锁能力强,适用于防火墙环境。
  • 强大的路由功能,可以精细控制流量。

缺点:

  • 配置复杂,JSON 规则较多,学习成本高。
  • 资源占用较高,比 gost/brook/socat 等稍重。

📊 稳定性:★★★★★(非常稳定,适合长期使用)


9. iperf3

优点:

  • 专门用于网络性能测试,可以测试 TCP/UDP 速率、丢包率等。
  • 支持多种模式,可以进行单向、双向、并发测试。

缺点:

  • 不是端口转发工具,只能用于测速,不能用于代理或 NAT。

📊 稳定性:★★★★★(作为测试工具很稳定,但不适合端口转发)


10. haproxy

优点:

  • 高性能负载均衡,适用于高并发代理和服务器负载均衡。
  • 支持 TCP/HTTP/HTTPS/WebSocket,适用于 Web 代理和 API 网关。
  • 稳定性极高,企业级应用广泛使用。

缺点:

  • 配置较复杂,相比 caddy、nginx 需要更多调整。
  • 不适用于 UDP 转发,仅适用于 TCP 和 HTTP/S。

📊 稳定性:★★★★★(非常稳定,适用于大规模代理)


11. tinyPortMapper

优点:

  • 超轻量级,占用资源极少。
  • 简单易用,一条命令即可完成端口转发。

缺点:

  • 功能极少,仅支持基础端口映射。
  • 不支持高级协议或负载均衡

📊 稳定性:★★★☆☆(适用于小型场景,但功能有限)


综合对比表

工具 优点 缺点 适用场景 稳定性
gost 多协议、链式代理 复杂 多协议代理 ★★★★☆
iptables 内核级,极快 配置难 端口转发 ★★★★★
brook 轻量,加密 功能少 轻量级代理 ★★★☆☆
caddy 易用,自动 HTTPS 仅限 HTTP Web 反代 ★★★★★
ehco 轻量,支持 TCP/UDP 生态小 简单转发 ★★★★☆
socat 强大,协议广泛 复杂 端口转发 ★★★☆☆
realm 流量复用,文档好 生态小 TCP/UDP 转发 ★★★★☆
v2ray 功能强,抗封锁 配置复杂 防火墙环境 ★★★★★
iperf3 测速工具 不能代理 网络测试 ★★★★★
haproxy 高性能负载均衡 不支持 UDP 负载均衡 ★★★★★
tinyPortMapper 超轻量 功能少 简单端口转发 ★★★☆☆

如果你有具体的使用需求,我可以推荐最适合的方案!😊

一键回程测试脚本:backtrace 三网回程路由测试使用教程

首先简单介绍一下 backtrace 这个脚本,这个脚本是在 GitHub 上看到的,目前仅有的介绍其实就是一个 GitHub 项目主页。

GitHub 主页:https://github.com/zhanghanyun/backtrace

目前作者没有添加更多介绍,只有简单的一句“三网回程路由测试”。

二、backtrace 一键测试脚本使用教程

backtrace 一键测试脚本使用也很简单,登录 VPS 之后输入下面的命令即可:

curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh

输入之后回车即可开始测试。

如何限制rockyLinux8网卡速度

在 Rocky Linux 8 中,我们可以使用 tc (traffic control) 命令来实现端口限速。以下是具体步骤:

  1. 首先安装必要的工具:
bash
dnf install -y iproute-tc
  1. 基本的限速命令格式(以限制下载速度为例):
bash
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
  1. 对特定端口限速的完整示例(使用 iptables 配合 tc):
bash
# 创建新的 tc 规则
tc qdisc add dev eth0 root handle 1: htb default 10

# 创建限速类
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit

# 使用 iptables 标记特定端口的流量
iptables -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 1
iptables -A INPUT -p tcp --dport 80 -j MARK --set-mark 1

# 将标记的流量匹配到限速类
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1 fw flowid 1:1

参数说明:

  • rate: 平均速率
  • burst: 突发流量大小
  • latency: 数据包延迟
  • mbit: 兆比特/秒
  • kbit: 千比特/秒

删除限速规则:

bash
tc qdisc del dev eth0 root

查看当前限速规则:

bash
tc -s qdisc ls dev eth0

需要注意:

  1. 将 eth0 替换为您实际的网络接口名称
  2. 根据实际需求调整速率值
  3. 建议先测试小流量,再逐步调整参数

    如果要限速 1G,需要修改 rate 和 burst 的值,这里给出命令:

    bash
    tc qdisc add dev eth0 root tbf rate 1gbit burst 1mbit latency 400ms

    解释一下参数:

    • rate 1gbit:限制速率为 1 Gigabit/秒
    • burst 1mbit:突发缓冲区设为 1 Megabit
    • latency 400ms:延迟保持 400 毫秒

    如果要查看是否生效:

    bash
    tc -s qdisc ls dev eth0

    如果要删除限速:

    bash
    tc qdisc del dev eth0 root

    如果要限速 500M,将 rate 值设为 500mbit:

    bash
    tc qdisc add dev eth0 root tbf rate 500mbit burst 500kbit latency 400ms

    参数说明:

    • rate 500mbit:限制速率为 500 Megabit/秒
    • burst 500kbit:突发缓冲区设为 500 Kilobit(一般设置为与 rate 对应的较小值)
    • latency 400ms:延迟保持 400 毫秒

    验证和管理命令:

    bash
    # 查看限速规则
    tc -s qdisc ls dev eth0

    # 如果要删除限速
    tc qdisc del dev eth0 root

    记得将 eth0 替换为您实际的网络接口名称。

VPS 限制网速带宽 Linux网卡限速

Wondershaper介绍: WonderShaper 是一个限制网络带宽的脚本, 可用于对特定网卡进行带宽限速, 它封装了linux的tc命令, 但是使用起来更加简单和方便.

安装 wondershaper

curl -Lo /usr/sbin/wondershaper https://raw.githubusercontent.com/magnific0/wondershaper/master/wondershaper;
chmod +x /usr/sbin/wondershaper;

查询网卡

ifconfig # 大多数为 eth0

对网卡设置限速

wondershaper -a eth0 -d 5000  -u 2000 # 限制 下载 5Mbps, 上传 2Mbps
wondershaper -a eth0 -d 90000 -u 90000 # 限制 下载  90Mbps, 上传 90Mbps
wondershaper -a eth0 -d 900000 -u 900000 # 限制 下载 900Mbps, 上传 900Mbps
wondershaper -a eth0 -d 900000 -u 900000

-a 网卡名(这里设了 eth0)
-d 下载速度 (单位为 Kbps)
-u 上传速度 (单位为 Kbps)
速度单位为 Kbps(Kbit/s) (100000 Kbps = 100Mbps = 12.5 MB/s)

取消网卡限速

wondershaper -a eth0 -c # eth0 为网卡名

查看状态

wondershaper -a eth0 -s # eth0 为网卡名

speedtest 测试网速

安装speedtest 的教程

speedtest # 根据就近节点, 测试限速效果

防止重启机器, 限速失效

  • 安装服务:
    curl -Lo /etc/systemd/system/wondershaper.service https://raw.githubusercontent.com/magnific0/wondershaper/master/wondershaper.service;
    systemctl daemon-reload;
  • 创建配置文件
    curl -Lo /etc/systemd/wondershaper.conf https://raw.githubusercontent.com/magnific0/wondershaper/master/wondershaper.conf;
    # 编辑 配置文件
    vim /etc/systemd/wondershaper.conf
    # 根据需要, 修改 IFACE, DSPEED, USPEED 的值即可
  • 启动服务
    systemctl enable --now wondershaper.service

限速的用途

某些VPS商家的带宽限速规则较严格, 比如多少分钟内, 占用过高(比如超过多少Mbps) 就限速.
自己手动限速, 可以避免 触发限速规则.