分类 主机教程 下的文章

如何结合宝塔用另一台服务器 反向代理 到已搭建的博客。现在已有domain.com 使用clouflare解析到已用wordpress搭建博客的服务器A,由于最近在中国大陆访问CF的CDN十分卡顿,所以想舍弃CF的CDN而使用另一台服务器B做为前端 反向代理 到服务器A。这样既可以不暴露服务器A的ip,也可以提速对博客的访问。

步骤

1.将域名 domain.com 的解析由服务器A的 a.a.a.a 改到服务器B的 b.b.b.b,不开启cloudflare的小云朵
2.在服务器B的宝塔后台,新建一个 domain.com 的网站,并且申请SSL证书,打开force https
3.点击 宝塔后台 – Website – domain.com – Reverse proxy,点击 Add reverse proxy
4.Proxy name 随意填写,Target URL 填写 https://a.a.a.a ,指向服务器A的ip地址
5.Sent Domain 默认为 $host 不用改,其余不用填,上面 Enable cache的开关根据需求打开或者关闭
6.在服务器A的宝塔后台,如果之前申请的SSL证书没有过期,可以不用修改,如果之前申请的SSL证书快过期需要更新,可以先disable SSL后,选择Other cetificate,然后将服务器B上的证书内容直接复制过来,点击Save,并开启force https,现在访问 domain.com 就是通过服务器B反向代理到服务A。

使用场景

宝塔面板你的源站服务器B到你网络非常差,你还有个服务器A到你的网络很好,但是配置和硬盘都捉急,或者是白嫖的,指不定哪天就没了。这时候可以用服务器A为源站反代,因为反代站不保存任何数据,所以对服务器A的负载很小,也不需要太多性能,即使A挂了,你的数据也很安全。

具体实施:

1.给反代服务器A装上宝塔面板;

2.只装个nginx;

3.添加网站;

4.进入网站列表,找到反向代理,填上你的源站URL,同时勾选缓存;

5.进入文件管理,在etc目录下找到hosts(找不到就搜索);

6.在hosts最后一行加入该条代码,改成你的源站IP和域名,保存;

8.8.8.8 example.com

7.最后去域名商那里,把你的域名解析到你的反代服务器,然后就等生效就完事了。

如果你上了HTTPS,把源站的证书的KEY和PEM复制过来一份,直接开HTTPS就可以了。

另外,这里为什么没有提示要改 Hosts ? 而这篇文章里镜像自己的网站的时候 却要去修改 Hosts ?

原因就是 镜像别人的网站 和 镜像自己的网站 区别 在于 是不是原域名反代。

镜像别人的网站比较简单,后台一设置,域名商里一解析就完事了。比如 你在 源站服务器B 上的域名为 TTT.com ,在反代服务器A的域名是 SSS.com ,是能直接识别的。

镜像自己的网站,除了上面一样的2步,还得去修改hosts,因为你在 源站服务器B 上的域名为 TTT.com ,在反代服务器A的域名也是 TTT.com ,这是相同域名反代,是不能直接识别的。所以是需要修改 Hosts 文件里的IP进行识别。

安装 Docker 与 Nginx Proxy Manager(省略)

创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/wallos

cd /root/data/docker_data/wallos

vim docker-compose.yml

英文输入法下,按 i

version: '3'
services:
  wallos:
  image: bellamy/wallos:latest
  container_name: wallos
  restart: unless-stopped
  ports:
    - 8080:80
  volumes:
    - ./data:/var/www/html/db
    - ./logos:/var/www/html/images/uploads/logos
  environment:
    - TZ=Asia/Shanghai

切换成英文输入法,修改好之后,按一下 esc,然后 :wq 保存退出

cd /root/data/docker_data/wallos
docker compose up -d 

接下来用IP:端口访问就行。

更新 wallos

说明:
请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像。

cd /root/data/docker_data/wallos
docker-compose pull
docker-compose up -d
docker image prune

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y 即可。

卸载 wallos

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/wallos
docker-compose down
cd ..
rm -rf /root/data/docker_data/wallos   完全删除

通过以上步骤即可完全删除。

方法一

方法一为临时配置,重启后失效
用root用户依次运行以下命令:

ip addr add IPV6地址/64 dev ens3
ip -6 route add IPV6网关 dev ens3
ip -6 route add default via IPV6网关 dev ens3

注意:将命令中的IPV6地址和IPV6网关替换成你自己后台分配的地址及网关

方法二

此方法配置后重启不会失效,永久有效,不支持Ubuntu18.04
编辑/etc/network/interfaces文件

vi /etc/network/interfaces

将以下代码添加到文件中

iface ens3 inet6 static
        address IPV6地址
        netmask 64
        gateway IPV6网关
        autoconf 0

注意:将命令中的IPV6地址和IPV6网关替换成你自己后台分配的地址及网关
添加完成后保存退出,然后重启网络配置使其生效即可

/etc/init.d/networking restart

测试

IPV6测试命令(任选一个)

ping6 ipv6.google.com

ping6 ipv6.baidu.com

自建DDNS解决动态IP服务器访问问题

  1. 把域名接入cloudflare
  2. 获取Global API Key
  3. 设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)
  4. 下载 DDNS 脚本
  5. 修改 DDNS 脚本并补充相关信息
  6. 设置定时任务

把域名接入cloudflare

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

获取Global API Key

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

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

添加一条A记录,例如:hkt.test.com,Proxy status设置成DNS only
请输入图片描述

下载 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: [email protected]
# 填写 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