一键部署参考这里!,手工部署看这里!

需求

  • 已经部署了一个镜像,想部署第二个

部署

安装 zmirror

  • 我的第一镜像是 Google, 之前已经安装到了/var/www/zmirror

  • 很遗憾, 在目前, 一个zmirror文件夹只能放一个镜像
    不同的镜像只能放在不同的zmirror安装文件夹中

  • 所以如果需要部署第二镜像, 那么就需要单独开一个zmirror文件夹,这里将第二镜像(tumblr)的安装到 /var/www/tumblr

下载 zmirror

clone 一份 zmirror, 并且修改所有者为 www-data (apache 的用户, 给予写入权限)

cd /var/www &&
git clone https://github.com/aploium/zmirror.git tumblr &&
cd tumblr &&
chown -R www-data . && 
chgrp -R www-data .

配置 zmirror

  • zmirror 镜像需要使用自带的一个配置文件 config_thumblr.py(作者笔误写错单词),需要把他们拷贝到程序根目录
cp more_configs/config_thumblr.py config.py
  • 手动修改 config.py, 在里面加上自己的域名

在大约第40行开始处, 的

# ############## Local Domain Settings ##############
my_host_name = 'www.localhost.com'
my_host_scheme = 'http://'

修改为如下, 修改两行, 添加一行

# ############## Local Domain Settings ##############
my_host_name = 'tumblr.caisan.ml'
my_host_scheme = 'https://' # 注意把上面这行的http改成https
verbose_level = 2
  • 请将其中的tumblr.caisan.ml替换为你是自己实际的域名

使用let's encrypt获取证书

sudo service apache2 stop &&
cd ~/certbot &&
./certbot-auto certonly --agree-tos -t --standalone -d tumblr.caisan.ml
  • 请将上面脚本中tumblr.caisan.ml替换为你自己的域名

配置Apache2

  • 进入 Apache2 的配置文件夹, 新建一个tumblr.conf文件
cd /etc/apache2/sites-enabled && vi tumblr.conf
  • 填写以下内容
<IfModule mod_ssl.c>
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
    <VirtualHost *:443>
        # 域名, 记得修改成你自己的
        ServerName tumblr.caisan.ml

        # 这个没用的
        ServerAdmin root@localhost


        # 下面两个log文件路径也建议按实际修改
        # 默认保存在 /var/log/apache2/ 文件夹下
        # ErrorLog 中包含了zmirror产生的stdout输出, 若需要debug可以看它
        ErrorLog ${APACHE_LOG_DIR}/zmirror-tumblr_ssl_error.log
        CustomLog ${APACHE_LOG_DIR}/zmirror-tumblr_access.log combined

        # ##### WSGI 这部分是重点  ######
        WSGIDaemonProcess zmirror_tumblr user=www-data group=www-data threads=16
        #这是刚刚安装的zmirror的路径
        WSGIScriptAlias / /var/www/tumblr/wsgi.py
        WSGIPassAuthorization On

        # 给予zmirror文件夹权限
        <Directory /var/www/tumblr>
            WSGIProcessGroup zmirror_tumblr
            WSGIApplicationGroup %{GLOBAL}
            Order deny,allow
            Allow from all
        </Directory>

       # ######### SSL部分 这部分告诉Apache你的证书和私钥在哪 #########
       # 下面使用的是刚刚let's encrypt给我们的证书, 你也可以用别的
        SSLEngine on
        # 私钥
        SSLCertificateFile /etc/letsencrypt/live/tumblr.caisan.ml/cert.pem
        # 证书
        SSLCertificateKeyFile /etc/letsencrypt/tumblr.caisan.ml/privkey.pem
        # 证书链
        SSLCertificateChainFile /etc/letsencrypt/live/tumblr.caisan.ml/chain.pem

       # HTTP/2
        <IfModule http2_module>
            Protocols h2 h2c http/1.1
        </IfModule>
    </VirtualHost>
</IfModule>

重启 Apache2

sudo service apache2 restart

访问tumblr

总结

同VPS多镜像, 主要是利用了 Apache 的 vhost 功能, 允许同一台服务器运行多个域名, 多个网站上面的步骤基本就是在重复部署第一个镜像:

  • 创建新的zmirror文件夹 --> 获取证书 --> 加一个新的Apache2配置文件