[求教]我买了一个域名,如何用 cloudflare 代理我的 azure 服务器的 ip

查看 37|回复 3
作者:Lifemm   
背景:从 Spaceship 买了一个数字域名,十年只要大概$6 。我正好在 azure 有一台服务器,部署了一些服务,比如端口 5320 ,5000...,现在都是通过 ip:port 访问的(可以正常访问)。
问题:如何把我买的域名用 cloudflare 去代理。
最终效果:访问我的域名:port ,会直接像 ip:port 一样正常访问。
目前操作
在 spaceship
1.修改我的域名的 Custom DNS 为
NAMESERVERS:
[dara.ns.cloudflare.com] [mario.ns.cloudflare.com]
2.disable DNSSEC
在 cloudflare
1.给我的域名添加了 DNS Records
类型
[td]Type[/td]
[td]Name[/td]
[td]Content[/td]
[td]Proxy status[/td]
[td]TTL[/td]
A
www
ip
DNS only
Auto
2.disable DNSSEC
3.尝试在 cloudflare 首页-》 Workers & Pages-》 Overview
添加了一个 worker
workers.js
export default {
  async fetch(request, env, ctx) {
    url.host = 'ip:port';
    return fetch(url, { headers: request.headers, method: request.method, body: request.body });
    //return new Response('Hello World!');
  },
};
结果:报错
return new Response('Hello World!');只有这行是可以打印出来的。
第一次提问,上述表达有不正确的地方,请大佬们不吝赐教,谢谢!
baobao1270   
1. 为什么要禁用 DNSSEC ?建议启用以增强 anquanx
2. 不需要 worker, 直接用 origin rule 配回源端口
3. 不能选 DNS Only Mode ,要把橙云点亮
baobao1270   
Anqunx -> 安全
另外如果你打算用 worker ,那么就要点亮橙云,不然流量根本不经过 CF ,worker 也就不起作用了
cdlnls   
如果你的 Proxy status 是 DNS only , 那么在查询 DNS 的时候,DNS 服务器会直接返回你设置的 IP ,所以这个客户端发器的 http 请求压根就不会发送到 cf 的服务器上,这个 worker 它应该也不会生效。
你这个需求,其实没有必要用 worker 来做,出错的原因是语法错误。
如果你只是希望用域名代替 IP ,那么直接设置一个 DNS 解析就可以了。然后等 DNS 解析生效了,就可以在浏览器里面使用域名访问就可以了 http://domain.com:5000
如果你是想隐藏掉端口,http://app1.domain.com http://app2.domain.com ,那就可以在 cf 上面配置 Origin Rules ,根据域名,把流量转发到后端对应的应用的端口上。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部