背景:从 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 类型
Type | Name | Content | Proxy status | TTL |
---|---|---|---|---|
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!');只有这行是可以打印出来的。
第一次提问,上述表达有不正确的地方,请大佬们不吝赐教,谢谢!
添加了 DNS Records 类型,就可以。谢谢各位!
Type | Name | Content | Proxy status | TTL |
---|---|---|---|---|
A | www | ip | DNS only | Auto |
Type | Name | Content | Proxy status | TTL |
---|---|---|---|---|
A | @ | ip | DNS only | Auto |
1
baobao1270 255 天前 via iPhone
1. 为什么要禁用 DNSSEC ?建议启用以增强 anquanx
2. 不需要 worker, 直接用 origin rule 配回源端口 3. 不能选 DNS Only Mode ,要把橙云点亮 |
2
baobao1270 255 天前 via iPhone
Anqunx -> 安全
另外如果你打算用 worker ,那么就要点亮橙云,不然流量根本不经过 CF ,worker 也就不起作用了 |
3
cdlnls 255 天前
如果你的 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 ,根据域名,把流量转发到后端对应的应用的端口上。 |