phps_admin 发布的文章

使用场景

宝塔面板你的源站服务器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