Skip to content

cia1099/dict_server

Repository files navigation

dict_server

AI vocabulary database and dictionary

Install

python3 -m venv venv
source venv/bin/activate
pip install pipenv && pipenv install
scp .env <remote>:~/dict_server
scp dictionary/oxfordstu.db <remote>:~/dict_server/dictionary
# environment
sudo apt-get install ffmpeg -y
brew install ffmpeg #MacOS
  • systemd service

systemd服务的/usr/lib/systemd/system/monitor.service文件里只能执行一个脚本,而且这脚本结尾必须是一个持续性的process,不然.service会一直重新启动,因为内容有Restart,造成错误。
想要一个.service能执行多个脚本,就新创一个第三方脚本来执行多个目标脚本,要注意是这些脚本都是持续process,因此前面执行的脚本运行在后台,不然这第三方脚本会卡在前面持续process的脚本。
e.g. (third party ~/cmd.sh):

#!/bin/bash
set -e;
# 注意要将前面的process运行在后台,以免脚本运行卡住
nohup bash /home/yoyo/dict_server/cmd.sh > /dev/null &
# 最后维持一个process避免一直重启
bash /home/yoyo/monitor/cmd.sh

编辑sudo vim /usr/lib/systemd/system/monitor.service

ExecStart=/home/yoyo/cmd.sh

Nginx

新增path给监听的port:

# sudo vim /etc/nginx/sites-available/cia1099.cloudns.ch
location /dict/ {
        proxy_pass http://localhost:8866/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 30M;
    }

在 Nginx 里,默认的 client_max_body_size 只有 1MB,所以如果你上传文件、POST JSON 数据、或者转发大请求时,超过这个值就会报 413 错误。

  • 使用 root_path 配置 FastAPI 应用的前缀

FastAPI 提供了一个 root_path 配置选项,可以在创建应用实例时指定基础路径前缀。

from fastapi import FastAPI

app = FastAPI(root_path="/dict")

但是,这种方法要求 Nginx 配置路径为 /dict/ 的所有请求都直接转发给 FastAPI,且不会去除 /dict。配置如下:

location /dict/ {
    proxy_pass http://localhost:8866/dict/;
}

About

AI vocabulary database and dictionary

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages