写作时间(2020年1月)
方案一
使用花生壳的内网映射,将内网80映射至花生壳提供的公网服务器的80,但是这样就浪费了家里公网的带宽。以笔者为例,家中公网下行带宽300M,上行30-40M,如果买公网服务器1M的带宽1个月就要50+rmb,对个人建站兼职是烧钱。
那么有没有什么办法解决呢?
方案二
如果你不在意的话,显然使用非80端口完全不影响使用。你说用户不想输入端口号?但实际上用户往往连网址也不会输入。
方案三
如果真的很在意,花生壳的dns解析有隐藏url功能。10元/年。
方案四
自建服务器,自己写转发脚本,上述隐藏url的原理就是将你配置的域名映射到公网的一个网站,该网站会根据你的配置生成一个html,html中包含一个iframe,指向你的带端口号的网址。说到这,如果你不是web小白,你自己也能实现这么一个功能了吧?当然你完全没必要自己实现这样的功能,因为这个功能需要一个服务器来做,同时你还需要自己写代码。相比10年一元的价格,服务器的价格恐怕更难接受。
配置好隐藏url后,如果你的网站header中的X-Frame-Options是deny的话,依然无法访问,控制台会报错
解决办法,如果你用的nginx做转发,加入下面两行配置
proxy_hide_header Content-Security-Policy;
proxy_hide_header X-Frame-Options;
如果你用chrome访问,可以使用Ignore X-Frame headers插件。
总之报错就是因为http的X-Frame-Options特性
如果你的浏览器支持dns的srv功能,在dns中配置srv记录也可以,但是现在主流浏览器都不支持哦。据说http1.2有可能支持。