Nginx Proxy Manager, 是一个预建的docker镜像,使用它你不需要对Nginx或Letsencrypt有太多了解,就能轻松转发你在家里或其他地方运行的网站。
https://github.com/NginxProxyManager/nginx-proxy-manager
最近也不知从哪个版本开始,Nginx Proxy Manager的证书自动更新不能正常工作了。查看container的日志可以看到下面这个关于‘zope’的错误。
ModuleNotFoundError: No module named ‘zope’
据说这个错误和国内的网络环境有关,需要手工在container里安装zope。
首先进入npm container的命令行。
sudo docker exec -it npm /bin/bash
升级系统手工安装zope
apt update
#apt install build-essential libssl-dev libffi-dev python3-dev cargo
apt install python3-pip
pip install zope
接下来的问题就是在国内用安装升级要花很长时间,那就要使用国内的开源软件源镜像站了。比如:
https://mirrors.tuna.tsinghua.edu.cn/
首先是debain源,https://mirrors.tuna.tsinghua.edu.cn/help/debian/,NPM用的是debian buster。修改 /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
如果docker里没有vi,可以用sed还替换。
sed -i 's#http://deb.debian.org#https://mirrors.cloud.tencent.com#g' /etc/apt/sources.list
新版本稍有不同更新源的命令是:
sed -i 's#http://deb.debian.org#https://mirrors.cloud.tencent.com#g' /etc/apt/sources.list.d/debian.sources
然后是pip的源,https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ ,使用-i https://pypi.tuna.tsinghua.edu.cn/simple就行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
也就是
pip install zope -i https://pypi.tuna.tsinghua.edu.cn/simple
如果看到下面这个错误
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
可以这样解决
mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.bak
我还顺便还升级了dnspod插件,不知是不是必须的。
pip install certbot-dns-dnspod
CORS issue
add_header 'Access-Control-Allow-Origin' *;