因为最近比较闲的蛋疼,博客搭建好了也没时间写文章,所以就做个小记记录一下

我不喜欢在线看番剧,因为会员,画质,阉割和诸多原因(没错我说的就是B站),我必须要访问连接非常不稳定的某些资源分享网站,但是因为连接非常不稳定所以我就有了一个搭建镜像来加速打开的想法

经过搜索,我找到一款神器:zmirror,不同于使用nginx直接反向代理,它会重写用户与源站的连接,所以它很难被源站感知并检测到。

我喜欢手动部署,一键脚本总是觉得不踏实不放心,担心污染我的服务器环境。自己做才是最好的。

部署前请确保你的服务器已经安装python3

本文是基于Debian操作系统的,部分步骤可能不适用于其他操作系统

准备环境

首先创建一个运行它的用户,防止环境污染

#!/bin/bash
sudo adduser --system --home /var/lib/zmirror zmrirror

然后就可以开始安装了

#!/bin/bash
#安装必要模块
sudo -u zmirror python3 -m pip install -U flask requests cchardet fastcache uwsgi
#拉取代码到本地
sudo -u zmirror git clone https://github.com/aploium/zmirror /var/lib/zmirror/run-app
#这里的示例安装目录是run-app

来到run-app目录,我们现在复制一个实例配置文件来快速启动

#!/bin/bash
sudo -u zmirror cp more_configs/config_archive_org.py config.py

接下来编辑config.py,将my_host_name修改成你自己的域名,这个域名要专为zmirror使用。如果你有https,那么你可以把my_host_scheme修改成https来启用https

与Nginx连接

接下来将它与nginx连接,我不喜欢用apache

我使用nginx→uwsgi→wsgi.py的方案

在run-app目录编写配置文件uwsgi.ini

[uwsgi]
socket=127.0.0.1:9700
chdir=/var/lib/zmirror/run-app/
wsgi-file=wsgi.py
processes=1
threads=1
pidfile=/var/lib/zmirror/run-app/uwsgi.pid
daemonize=/var/lib/zmirror/run-app/uwsgi.log

然后可以使用下面的命令启动uwsgi服务

#!/bin/bash
sudo -u zmirror /var/lib/zmirror/.local/bin/uwsgi --ini /var/lib/zmirror/run-app/uwsgi.ini

接下来编写一个nginx配置文件

server{
        listen 0.0.0.0:443 ssl;
        server_name 域名;
        #请自行处理ssl等基本内容

        error_log  off;
        access_log off;
        #关闭nginx的日志,因为uwsgi的日志已经够详细了

        location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9700;
        uwsgi_param UWSGI_CHDIR /var/lib/zmirror/run-app/;
}
}

大功告成,接下来访问你的域名,如果没有配置出错,你就可以看到互联网档案馆的网页

如何停止服务

目前正在想办法写服务文件,但是uwsgi启动太快了,会被systemd直接误杀。所以只能手动停止uwsgi服务。如果有大佬懂的欢迎告诉我,感谢

#!/bin/bash
kill $(cat /var/lib/zmirror/run-app/uwsgi.pid)