准备条件
- vps(我测试用的是vultr centos7)
- 域名+证书(免流的话需要备案的域名)
- 腾讯云cdn
- v2ray+websocket+tls+nginx+cdn
- 把域名解析到服务器IP
搭建nginx
Debian系统
apt install nginx
Centos7系统,用的这个搭建脚本
wget https://raw.githubusercontent.com/helloxz/nginx-cdn/master/nginx.sh && bash nginx.sh
安装完成后执行命令
source /etc/profile
让环境变量立即生效,或重新打开终端。
重装命令:./nginx.sh
(在/root目录下)
参考文章
搭建v2ray(官方一键)
bash <(curl -L -s https://install.direct/go.sh)
重启:service v2ray restart
状态:service v2ray status
搭建好了v2ray发现启动不了
- 服务器时间校准,比如你的服务器是aws美国的,但是你在中国使用v2ray,这样就会导致二者时间不一致,所以我们需要修改服务器的时间。(明明启动了,配置也没问题,可能就是忘记做这一步了,血与泪的教训)
- 查看端口是否打开、uuid是否一致、path路径是否一致
查看时间date -R
修改时间sudo date --set="2019-05-31 16:16:23"
修改nginx和v2ray配置
服务器 V2Ray 配置(官方贴出来的配置有问题,这个是我成功的)
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "info"
},
"inbound": {
"port": 10000, //自己随便改,不冲突就可以了
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "68b0fb83-4574-4204-8856-64c248715c97",
"level": 1,
"alterId": 10,
"security": "none"
}
]
},
"streamSettings": {
"network": "ws",
"security": "auto",
"wsSettings": {
"path": "/"
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
}
}
Nginx配置的反代配置(官方贴出来的配置有问题,下面是我成功的)
直接在/usr/local/nginx/conf/cdn里面新建一个*.conf配置
Ps:
默认配置文件中这一句include cdn/*.conf;
意思是默认配置加上该路径里面的配置,可以不用直接修改默认配置达到修改配置的目的
默认配置中的这段可删或者不删除(目前不确定对协议免流是否有影响)不会对协议免流有影响
server {
listen 80;
server_name localhost;
...
..
}
server {
listen 443 ssl;
server_name mydomain.me;
ssl_certificate /etc/v2ray/v2ray.crt;#证书的路径
ssl_certificate_key /etc/v2ray/v2ray.key;#证书的路径
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / { # 与 V2Ray 配置中的 path 保持一致
proxy_redirect off;
proxy_pass http://127.0.0.1:10000;#假设WebSocket监听在环回地址的10000端口上
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
# Show realip in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host; 这句和上面proxy_set_header Host $http_host;重复了,所以要注销掉,官网配置是没有注销的
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
然后访问您的域名,出现Bad Request
说明成功v2ray+ws+tls+nginx就成功了
配置腾讯云CDN
- 打开腾讯云的官网,CDN,添加域名,源站填写IP,需要注意的是,加速类型选择流媒体点播加速
- 再然后点击高级配置,添加Https。申请证书或者上传证书,回源记得选择协议跟随
PS:我是打开了强制https,也能免流,影响有待考究,测试无论打不打开都可以免 - 然后访问控制-把过滤参数关闭,缓存配置-全部改成0秒-关闭Range回源
- 再去域名解析商,修改A解析删掉,重新添加CNAME记录,记录值CDN那里会给
- 最后查询一下域名,出现腾讯cdn域名说明成功!
客户端配置
自己在客户端设置就好
地址填写域名
端口443
传输协议ws
伪装类型none
伪装域名一定要填写服务器域名
额外ID和path一定要和服务器端的一致
打开tls,默认为ture
PS搭建过程出现的问题
- 查看开放端口,v2ray内部转发的端口也是可以看到
- 部署CDN之前,先试一下v2ray能不能连上,记得同步时间
- 如果成功了,输入https://域名 ,会看到提示Bsd Rquest,而不是nginx的首页
- 关键在于v2ray和nginx的配置
Comments | NOTHING