人生若只如初见

WXY

搭建一个在线翻译网站

2022-11-22

Snipaste_2022-11-22_15-57-01

介绍

Lingva Translate —谷歌翻译的第三方版,作者原本的目的是防止隐私追踪。可以自建,有语音朗读🤩
—GitHub (https://github.com/thedaviddelta/lingva-translate)
提供的有API 具体参考github

注意

建议搭建在国外服务器,需要服务器能正常访问Google

采用docker方式部署

方式一 docker run

docker run -p 3001:3000 -e site_domain=translate.wxy97.com -e force_default_theme=light -e default_source_lang=auto -e default_target_lang=en thedaviddelta/lingva-translate:latest

方式二 Docker Compose

新建docker-compose.yaml 文件

version: '3'

services:

  lingva:
    container_name: lingva
    image: thedaviddelta/lingva-translate:latest
    restart: unless-stopped
    environment:
      - site_domain=translate.wxy97.com
      - force_default_theme=light
      - default_source_lang=auto
      - default_target_lang=en
    ports:
      - 3001:3000

我这里3000端口已经在使用了,我这里映射到3001,域名改成自己的。

docker compose up -d命令启动
然后修改nginx配置文件反代到3001端口即可;

upstream translate {
  server 127.0.0.1:3001;
}
server {
  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/translate.wxy97.com.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/translate.wxy97.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name translate.wxy97.com;
  access_log off;
  index index.html index.htm index.php;
  root /data/wwwroot/translate.wxy97.com;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  
  include /usr/local/nginx/conf/rewrite/none.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  
  location / {
      proxy_set_header HOST $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://translate;
    }


  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    proxy_pass http://translate;
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    proxy_pass http://translate;
    expires 7d;
    access_log off;
  }
  location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
    deny all;
  }
  location /.well-known {
    allow all;
  }
}

部署在Vercel(没有国外服务器可选择这个)

参考github

查看内存占用

docker stats 命令
Snipaste_2022-11-22_15-41-46

完成

我搭建好的成品预览: translate.wxy97.com