Railgun这个本来是CloudFlare收费的Plan才能使用的功能,不过如果你有CF合作伙伴(partners)账号,也可以免费用到这个东西,我也是最近才知道(后知后觉233)
然后我翻出了大概2年前申请的partners账号,决定折腾看看给网站启用了这个后有啥BUFF加成。。
在partners管理界面内还需要签一份“协议”才能开启Railgun功能,感觉好正规的样子:
8好意思,管你是谁,让我填地址和手机号,只能5可奉告:
这是在签合同嘛,竟然还需要电子签名,有点意思哟:
只能从零开始了,CF的partners界面里面是没有添加域名/管理DNS解析记录等功能的,所以还是得自己搭建一个面板,看了下好像目前最好用的是这个:
https://github.com/ZE3kr/Cloudflare-CNAME-Setup
如果你不想搭建这个或者说你根本就没有partners账号,没关系,文章的尾部我会把我搭建的面板地址放出来,你可以直接用我搭建的即可。
因发现这东西作用似乎不明显,所以我也懒得折腾了,鸽了。。
以下搭建过程基于Debian9:
apt -y update apt -y install apt-transport-https ca-certificates lsb-release wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt -y update
安装Git/Nginx/PHP7.3:
apt -y install git nginx php7.3-common php7.3-cli php7.3-fpm php7.3-curl
拉取项目文件/给予正确的权限/复制一份配置文件:
cd /var/www git clone https://github.com/ZE3kr/Cloudflare-CNAME-Setup.git mv Cloudflare-CNAME-Setup cloudflare-panel chown -R www-data:www-data cloudflare-panel cp cloudflare-panel/config.example.php cloudflare-panel/config.php
编辑配置文件:
nano cloudflare-panel/config.php
修改下面两行的配置:
define('HOST_KEY', 'API'); define('HOST_MAIL', 'Email');
新建Nginx站点配置文件:
nano /etc/nginx/conf.d/cloudflare-panel.conf
写入:
server { listen 80; server_name cf.koko.cat; index index.html index.htm index.php; root /var/www/cloudflare-panel; client_max_body_size 50m; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
重启Nginx完成部署:
systemctl restart nginx
打开这个面板,登录你的CF账号:
在面板内添加你要接入CF的域名:
然后添加你的域名DNS记录:
这里提供三种接入方式:CNAME/IP/NS,我这边使用CNAME的方式,可以看到下面的CNAME记录:
将对应的CNAME记录值添加到你的域名管理处(我拿NameCheap示范):
用CNAME的好处就是不需要去改动域名本身的DNS服务器地址,不需要强制去用CF的DNS了,可以任意使用一家的DNS服务器。
接着我们需要在CF的partners管理界面添加一个Railgun的Token:
然后在VPS上安装Railgun软件。
Railgun的软件简单点说分为服务端和客户端,服务端我们不用管,那是CloudFlare的事情,我们只需要在要启用Railgun功能的VPS内安装客户端即可。
以下安装过程基于Debian9:
apt -y update apt -y install apt-transport-https ca-certificates lsb-release curl curl -C - https://pkg.cloudflare.com/pubkey.gpg | apt-key add - echo "deb http://pkg.cloudflare.com/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/cloudflare-main.list apt -y update apt -y install railgun-stable
其他Linux发行版可参考:
https://pkg.cloudflare.com/
railgun-stable安装完成之后编辑如下配置文件:
nano /etc/railgun/railgun.conf
修改:
activation.token = YOUR_TOKEN_HERE activation.railgun_host = YOUR_PUBLIC_IP_OR_HOSTNAME
启动railgun服务:
systemctl start railgun.service systemctl enable railgun.service
回到partners管理界面,将要开启Railgun的域名添加到这里,只需要输入根域名即可:
现在可以登录CF的普通面板,看看Railgun是否已经开启,显示ON就行了,旁边那个Test就算显示错误也无所谓(因为它只测试www域,如果你是其他子域名就无法测试):
如何正确验证Railgun是否成功开启?访问你的网站,查看Header头,看有没有这一行:
具体参数对应的解释:
https://support.cloudflare.com/hc/en-us/articles/202963724-Reading-and-Interpreting-the-Cf-Railgun-Header
厉害了拉拉
railguns 界面没有签署,只有下一步:技术要求,这个要怎么搞呢
一直下一步就可以看到签协议的页面了。
知道原因了,我开启了翻译,所以点一步会直接跳转到首页,而不是签核页面
好奇怪,我都按步骤操作了,也开启成功了,但是没有 railgun 头部信息,是漏了什么步骤吗
看看是不是2408端口没开,然后用这个文档提供的方法测试下:https://www.cloudflare.com/docs/railgun/installation.html
开了的,cf后台设置开发模式就出来了,但是都是创建连接的状态,哎,折腾,看大家玩的都很简单,到我这儿这么复杂
带哥为什么把自己的Cloudflare Partner给划掉啦? 是翻车了嘛
不是翻车,是觉得这个railgun貌似作用不是很大,就不想折腾了。。