DeeplX+Caddy 对接沉浸式翻译 负载均衡

前言

最近因为公司的网对于谷歌自带的翻译用起来跟坨屎一样。全页翻译很难受,想着去买DeepL pro的api数,看了一下就算合租也很贵。所以直接pass掉了。然后逛了一圈发现有对接deepl网页版然后再作为api的deeplx,用了下感觉还可以。

但是!也不是完全没有缺点,虽说不限制字数和请求量了,但是经过实际使用,发现其实查询的时候如果过多,IP还是会被拉进去坐牢的。所以想了下,把自己的一些机器全部上了deeplx,然后做负载均衡。

测试使用感觉还行,比之前爽多了

部署

安装docker

得夸一下现版本的docker,真舒服,docker compose直接自带了,之前还得去下载。但是如果不含caddy,我推荐还是手动部署,这里贴一下安装的命令和优化的配置。

# 安装必要的环境,这里用我常用的debian系命令记录

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

# 使用官方脚本安装docker
## 国外版
curl -fsSL https://get.docker.com | bash

## 国内版
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 优化docker,限制日志大小
cat > /etc/docker/daemon.json << EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

安装 deeplx

这个就很简单了,无脑复制粘贴即可

docker run -itd -p 1188:1188 \
                -e "TOKEN=xxxxxx" \
                ghcr.io/owo-network/deeplx:latest

需要注意的参数:

  • TOKEN 参数用于防止将程序公开后,滥用请求,所以设置token来用于鉴权。需要在请求的时候带上 Authorization: 头。

顺便再加个iptables拦截下,双重防护,战斗!爽!

iptables -A INPUT -p tcp --dport 1188 -s 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 1188 -j DROP

配置Caddy负载均衡

修改Caddyfile,把负载均衡加上:

deeplx.xxxxx.com {
	reverse_proxy {
		to backend1:1188 backend2:1188 backend3:1188
                # 下面这个是负载均衡策略,我用的随机,也可以用轮询。更多的可以去caddy官网看
		lb_policy random
		header_up Authorization "Bearer [你的token]"
	}
}

最后重启即可。贴一个用docker 不需要重新down && up -d的重载caddy的命令

docker compose exec -w /etc/caddy caddy caddy reload

结束

全部弄好过后,终于可以翻译一整面的网页不会出现有报错了,如果有,直接重新刷新就可以了,而且也不占内存这个,后端越多越好。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容