免费网站反向代理系统程序–zmirror

2022-04-05 02:11 314 浏览

  免费网站反向代理系统程序–zmirror

  准备工作:

  推荐系统为:Ubuntu 16.04

  一键自动安装:

  使用zmirror快速部署镜像的脚本

  如果无法部署成功, 可以尝试手动部署: 手动部署zmirror

  前置需求

  一台墙外VPS, OpenVZ/Xen/KVM均可

  操作系统:

  支持的操作系统:

  Ubuntu 14.04/15.04(不支持HTTP2)/15.10/16.04+

  Debian 8 (不支持HTTP/2)

  不支持 CentOS/RHEL/Windows/Fedora/Arch/… 对于这些系统, 可以使用由yumin9822提供的这个脚本

  推荐的操作系统:

  Ubuntu 16.04 x86_64

  全新(刚安装完成)的操作系统. 如果系统中有其他东西, 可能会产生冲突

  root权限

  域名

  每个镜像要求一个三级域名(类似于g.zmirrordemo.com这样的, 有三部分, 两个点)

  域名已经在DNS记录中正确指向你的VPS

  运行方法

  我没有SSL证书 (如果不懂, 请使用这个)

  sudo apt-get -y update && sudo apt-get -y install python3 git

  git clone https://github.com/aploium/zmirror-onekey.git --depth=1

  cd zmirror-onekey

  sudo python3 deploy.py

  然后按照脚本给予的提示继续, 过程中会自动获取SSL证书

  如果有不懂的, 可参考下面的安装视频

  如果遇到bug, 请发issues提出

  我已有SSL证书

  如果已有证书, 希望使用自己提供的证书, 而不是通过 let’s encrypt 获取

  请将上面代码中的第四行替换成下面的样子, 在运行期间会提示你输入证书路径的:

  sudo python3 deploy.py --i-have-cert

  警告

  不支持加密的私钥, 如果私钥有密码加密, 请先解密

  安装过程视频

  特性

  支持一次部署多个镜像, 支持同VPS多镜像

  自动安装 let’s encrypt 并申请证书, 启用HTTPS

  自动添加 let’s encrypt 的定期renew脚本到crontab

  启用HTTP/2 ps:Debian8和Ubuntu15.04不支持HTTP/2

  启用HSTS

  手动安装教程:

  本教程使用zmirror自带的配置文件, 在一台全新安装的Ubuntu服务器上部署部署支持HTTPS和HTTP/2的zmirror镜像

  本教程以Google镜像为例

  适用于 Ubuntu 14.04/15.10/16.04+

  建议的系统是 Ubuntu16.04-x86_64

  暂时没有撰写CentOS系/win/Mac下的部署教程

  部署有困难的请将VPS重装为Ubuntu

  暂时只能手动部署, 自动部署脚本 zmirror-onekey 仍在开发中, 欢迎贡献代码

  部署完成后的镜像使用Apache2.4.23, 会启用HTTPS, 并且使用HTTP/2来提升访问性能

  在教程中使用 let’s encrypt 来获取HTTPS证书

  前置需求

  一台国外的服务器

  Ubuntu 14.04/15.10/16.04+

  建议的系统为 Ubuntu16.04-x86_64

  全新安装的系统

  一个已经解析到你服务器的三级域名, 不支持中文域名

  三级域名指类似于这样的: g.mydomain.com 域名里有两个点, 三部分的

  至于如何将域名解析到你的服务器, 请自行Google相关说明

  本教程以 lovelucia.zmirrordemo.com 为例

  安装操作

  如果部署中出现任何问题或者不清楚的地方

  请 点此发issue 提出

  或者在 gitter 中请求实时帮助, 可以点击右边的图标进入gitter聊天室 Gitter

  您会被加入到 CONTRIBUTORS.md 的贡献者列表中

  安装初始化环境

  以下脚本可以直接整个原样复制黏贴到terminal中运行

  每一行最后的&&表示本行执行成功后继续执行下一行

  sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&

  sudo apt-get update &&

  sudo apt-get upgrade -y &&

  sudo apt-get dist-upgrade -y &&

  sudo apt-get install build-essential patch binutils make devscripts nano libtool libssl-dev libxml2 libxml2-dev software-properties-common python-software-properties dnsutils git wget curl python3 python3-pip iftop -y &&

  sudo python3 -m pip install -U flask requests cchardet fastcache

  安装Apache2

  由于ubuntu14.04和16.04自带的Apache2均不支持HTTP/2, 所以需要安装不依赖ubuntu的最新版的Apache2

  同样, 下面的脚本也可以原样粘贴到terminal中运行

  LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ondrej/apache2 &&

  sudo apt-key update &&

  sudo apt-get update &&

  sudo apt-get upgrade -y &&

  sudo apt-get install apache2 -y &&

  sudo a2enmod rewrite mime include headers filter expires deflate autoindex setenvif ssl http2 &&

  sudo apt-get install libapache2-mod-wsgi-py3 -y

  使用PPA中最新版的Apache2, 覆盖掉自带的源, 之后也支持使用apt-get来升级或者卸载

  安装并配置zmirror本身

  假设将zmirror安装到 /var/www/zmirror

  本教程以部署Google镜像为例

  即使用这个配置文件 more_configs/config_google_and_zhwikipedia.py

  cd /var/www &&

  git clone https://github.com/aploium/zmirror &&

  cd zmirror &&

  chown -R www-data . &&

  chgrp -R www-data . &&

  cp more_configs/config_google_and_zhwikipedia.py config.py

  之后需要手动修改 config.py, 在里面加上自己的域名

  在大约第38行开始处, 的

  # ############## Local Domain Settings ##############

  my_host_name = '127.0.0.1'

  my_host_scheme = 'http://'

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

  # ############## Local Domain Settings ##############

  my_host_name = 'lovelucia.zmirrordemo.com'

  my_host_scheme = 'https://' # 注意把上面这行的http改成https

  verbose_level = 2

  请将其中的lovelucia.zmirrordemo.com替换为你是自己实际的域名

  新添加的 verbose_level = 2 这一行, 把zmirror的日志级别设置为Warning, 减少日志产生量.

  默认是3级, 会产生大量debug日志

  安装let’s encrypt并获得证书

  证书来源

  本教程使用let’s encrypt证书, 获取非常快, 但是有效期只有90天, 到期前需要重新获取

  你也可以使用 startSSL 或者 沃通 的免费SSL证书

  有效期分别为一年和两年

  请将下面脚本中 lovelucia.zmirrordemo.com 域名修改为你自己的域名, 修改后能直接复制进去运行

  为保证兼容性, 本教程使用standalone模式获取证书, 所以需要先停掉apache(包含在下面脚本中了)

  sudo service apache2 stop &&

  cd ~ &&

  git clone https://github.com/certbot/certbot &&

  cd certbot &&

  ./certbot-auto certonly --agree-tos -t --standalone -d lovelucia.zmirrordemo.com

  如果一切顺利, 此时你应该能看到如下的输出:

  IMPORTANT NOTES:

  - Congratulations! Your certificate and chain have been saved at

  /etc/letsencrypt/live/lovelucia.zmirrordemo.com/fullchain.pem. Your cert

  will expire on 2016-10-30. To obtain a new or tweaked version of

  this certificate in the future, simply run certbot-auto again. To

  non-interactively renew *all* of your certificates, run

  "certbot-auto renew"

  - If you like Certbot, please consider supporting our work by:

  Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate

  Donating to EFF: https://eff.org/donate-le

  表示SSL证书已经成功获取, 并且已经存到了 /etc/letsencrypt/live/lovelucia.zmirrordemo.com/ 目录中

  配置Apache2

  现在需要给Apache2添加配置文件

  使用apt-get安装的情况下, apache2的配置文件存放在/etc/apache2/中

  下面下载的这个配置文件包含了一些功能和性能的优化, 如Gzip, 修改自h5bp

  cd /etc/apache2/conf-enabled &&

  wget https://gist.githubusercontent.com/aploium/8cd86ebf07c275367dd62762cc4e815a/raw/29a6c7531c59590c307f503b186493e559c7d790/h5.conf

  然后进入/etc/apache2/sites-enabled文件夹,

  创建一个my-first-mirror-site.conf文件, 内容如下(记得修改对应的域名和文件夹等东西)

  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

  # 域名, 记得修改成你自己的

  ServerName lovelucia.zmirrordemo.com

  # 这个没用的

  ServerAdmin root@localhost

  # 下面两个log文件路径也建议按实际修改

  # 默认保存在 /var/log/apache2/ 文件夹下

  # ErrorLog 中包含了zmirror产生的stdout输出, 若需要debug可以看它

  ErrorLog ${APACHE_LOG_DIR}/zmirror-google_ssl_error.log

  CustomLog ${APACHE_LOG_DIR}/zmirror-google_ssl_access.log combined

  # ##### WSGI 这部分是重点 ######

  WSGIDaemonProcess zmirror_google user=www-data group=www-data threads=16

  #这是刚刚安装的zmirror的路径

  WSGIScriptAlias / /var/www/zmirror/wsgi.py

  WSGIPassAuthorization On

  # 给予zmirror文件夹权限

  WSGIProcessGroup zmirror_google

  WSGIApplicationGroup %{GLOBAL}

  Order deny,allow

  Allow from all

  # ######### SSL部分 这部分告诉Apache你的证书和私钥在哪 #########

  # 下面使用的是刚刚let’s encrypt给我们的证书, 你也可以用别的

  SSLEngine on

  # 私钥

  SSLCertificateFile /etc/letsencrypt/live/lovelucia.zmirrordemo.com/cert.pem

  # 证书

  SSLCertificateKeyFile /etc/letsencrypt/live/lovelucia.zmirrordemo.com/privkey.pem

  # 证书链

  SSLCertificateChainFile /etc/letsencrypt/live/lovelucia.zmirrordemo.com/chain.pem

  # HTTP/2

  Protocols h2 h2c http/1.1

  完成

  很好, 所有部署工作已经完成了!

  现在只需要重启一下Apache即可

  sudo service apache2 restart

  存在的一个小问题

  按照上面的配置完成后, https的网站是可以直接访问了, 但是访问http无法直接跳转到https.

  请在 /etc/apache2/sites-enabled/000-default.conf 中加入以下设置, 使得HTTP能自动跳转到HTTPS

  加在括起来范围的里面

  RewriteEngine On

  RewriteCond %{HTTPS} !=on

  RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]


分享:
相关内容
  • 企业级备份插件-Xtrabackup命令恢复备份数据
  • /usr/bin/bt: line 129: syntax error: unexpected end of file 解决办法
    最近有遇到过安装完面板时候,输入bt 报 /usr/bin/bt: line 129: syntax error: unexpected end of file 的错误出现这个问题可能原因:1、网络波动导致无法将宝塔文件写入到/etc/init.d/bt 这个系统文件2、源文件缺失下面是解决办法:1、mv /etc/init.d/bt /tmp/bt_back2、cp /www/server/panel/init.sh /etc/init.d/bt && chmod +x /etc/init.d/bt3、/etc/init.d/bt restart复制代码
  • bt宝塔使用Python项目管理部署Djangoblog详细教程
  • 宝塔一键迁移API版本3.0详细教程
    关键词说明:发送数据服务器:当前需要进行数据迁移的服务器,其他名称:迁出服务器。接收数据服务器:当前用于接收数据的服务器,其他名称:迁入服务器。API秘钥:面板提供的外部调用接口。API秘钥IP白名单:用于授权指定IP使用面板API秘钥。填写一键迁移配置信息,这里必须强调是接收服务器信息、接收服务器信息、接收服务器信息(重要的事情说三遍)。目标面板地址:
  • linux宝塔bt如何使用亚马逊S3存储备份你的数据
    如何使用亚马逊S3存储备份你的数据一、安装AWS S3对象存储插件二、获取亚马逊的密钥步骤如下:1、登录你的控制台, 点击右上角你的用户名,选择安全凭证2、创建你的根密钥并记录下来三、获取你的存储桶名四、填入你获取到的密钥对和桶名到插件内五、备份时存储选择AWS即可aws5.png(35.66 KB, 下载次数: 226)下载附件2020-5-29 10:31 上传
相关推荐
linux
热门内容
  • 如何解决[Docker管理器]运行时发生错误!
    解决办法:返回主页,点击右上角修复。或者等待10分钟自主会修复!
  • bt宝塔Nginx反向代理详细图文教程
    概念:反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。(
  • 宝塔防火墙禁止境外访问,禁止境内访问讲解
    一、禁止境外访问,禁止境内访问简介首先说明一下:禁止海外访问--->禁止除大陆之外的地区访问禁止境内访问---> 禁止国内访问二、防御设置2.1 禁止海外访问 (全局开关+站点开关=开启)这里全局开关需要开启。这个开启只是说开启了全局的。如果需要网站开启需要在网站里面开启才能让网站禁止海外访问两边开启成功之后才是真正的给这个网站开启了禁止海外访问2.1 禁止境内访问 (
  • 如何解决宝塔安装出现"下载宝塔运行环境失败,请尝试...
    用的是阿里云服务器,安全组该放行的端口都放行了您好,您那边使用的是哪个地区的服务器呢?您那边执行下面命令绑定下hosts然后重新安装看下是否正常echo "36.133.1.8 www.bt.cn download.bt.cn api.bt.cn dg1.bt.cn dg2.bt.cn" >> /etc/hosts
  • 如何解决ubuntu20.04编译安装nginx失败
Tags标签
联系方式