828华为云征文|利用华为云Flexus X实例解决家里公网80和443端口不开放问题

🔴大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂

写在前面

今天,手里拿到了一台华为云Flexus X实例的云服务器,结合实际场景,我们发挥一下他的作用。

最近正好华为云828搞活动,最高可以领8280的优惠券,大家有需求的千万要抓住这次机会哇。活动地址:在这里

优惠券如下:

在这里插入图片描述

拿到手后,简单的做了个评测,整体情况还是蛮不错的,所以,今天就结合我自己家里的实际场景,做个简单的应用吧。

Flexus X实例云服务器

介绍

首先,flexus系列的产品不止有云服务器,还有如下一些产品:

  1. Flexus L实例的云服务器
  2. Flexus X实例的云服务器
  3. Flexus 云数据库RDS
  4. Flexus 云容器实例
  5. Flexus 数字人
  6. Flexus 企业搜索服务
  7. Flexus 智能数据洞察
  8. Flexus 云会议

在这里插入图片描述
今天,我们不表别的,只来表一表Flexus X实例云服务器


服务器的情况如上所示,大家也可以看的出来,确实很强悍!

我们要做什么?

我家里有ipv4的公网ip,但是运营商把我的80和443端口给屏蔽掉了,所以我在家里部署了某个小服务后,比如端口是8900,那么用户访问的时候就需要这么访问:ip:8900,如果我们将域名解析到这个公网ip上后,用户访问就成了:域名:8900,可以看的出来,不是很友好。

友好的方式就是我们需要将后面的端口去掉,但是说来容易,不好操作,唯一的办法就是将域名从某一台没有封80 和443端口的公网服务器用nginx转发一下,这不,就把华为云的Flexus X实例的云服务器用上了。

原理流程图

下面,为了方便理解,我在这简单的画了个流程图,如下所示:

在这里插入图片描述

简单的解释一下:

我们以:aaa.com这个域名为例:

  1. 用户直接从浏览器中访问:aaa.com
  2. 我们将会aaa.com解析到华为云Flexus X实例服务器上
  3. 在华为云Flexus X实例的服务器上安装caddy或者nginx,用于反向代理,我这边以nginx为例。
  4. 华为云Flexus X实例的服务器反向代理到家里的lucky
  5. lucky进行反向代理,解析不同的二级域名到不同的服务上。

整体原理如上所示。

解析域名至华为云Flexus X 实例的服务器中

我这边域名是从腾讯上购买的,所以需要线上腾讯云控制台中的域名解析界面:

在这里插入图片描述
添加一条ipv4的解析记录,然后就完事儿了,

当然,我们也可以直接这么添加:

记录名称是:*,记录值是华为云Flexus X实例服务器的地址,这样所有二级域名的解析就都到这个服务器下面了。

华为云Flexus X 实例服务器配置反向代理

域名解析后,下面我们就开始在服务器的nginx中配置反向代理。比如我光猫映射的端口是8888,那么nginx里面的配置方式就如下:

 # 测试反代速度
    server {
    listen 80; 
    listen       443 ssl http2;
    server_name *.aaa.com;
    
    if ($server_port !~ 443){
            rewrite ^(/.*)$ https://$host$1 permanent;
        }
        
        #证书地址
        ssl_certificate      /home/project/https/aaa.com.pem;
        ssl_certificate_key   /home/project/https/aaa.com.key;
        ssl_prefer_server_ciphers on;

    location / {
        proxy_pass https://ip4地址:8888;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
      }
       location ~ ^/(ws|terminal/.+)$  {
          proxy_pass http://127.0.0.1:8008;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          proxy_set_header Host $http_host;
      }
      #PROXY-END/
    }

上诉所示,我们将所有子级的aaa.com的访问,全部转发到了https://ip4地址:8888这里啦。监听的事80和443端口,也就是用户访问的时候不需要带着端口啦。

打开光猫端口映射

下面,我们可以看到8888所有的访问都到光猫上了,这样我们就需要放开一下8888这个端口,在光猫中,我们叫:端口映射。

浏览器中输入光猫的管理地址:192.168.2.1

在这里插入图片描述
可能光猫不同,这里设置的方式也不同。参考即可。

lucky中申请ssl证书

如果需要通过https访问本地服务,则需要先申请ssl证书,lucky比较好的一点就是,只要申请一次,三月到期的时候,他会自动重新申请,达到自动续签,蛮方便的。

首先,我们进入lucky后台管理界面后,点击左侧菜单【SSL/TLS证书】,然后点击右边【添加证书】

在这里插入图片描述
在这里插入图片描述
按照我标注的这些,选择和填写一下即可,然后剩下的默认,点击确定,得稍微等会儿,证书才会自动申请下来。

我们可以从上变的日志模块中查看具体的申请情况。

web服务转发

下面,也就是最后一步,我们需要添加web服务,来达到反向代理的目的。

点击左侧菜单:【Web服务】,然后点击上边【添加Web服务规则】

在这里插入图片描述

  1. 操作模式
  • 简易模式:满足大多数人使用要求
  • 定制模式:提供更多可定制的参数 小白用户切勿修改填写定制模式下的任何参数
  1. 监听类型
  • 你可以两种都勾上。
  • 没有公网V4的情况下只勾上v6就足够了。
  • 小米路由v4的443和80被系统占用,如果你要使用这两个端口可以使用v6的80和443
  1. 监听端口
  • 所谓隐藏端口只是http使用了80监听端口,https使用了443监听端口,除非你明确知道你的运营商没有禁用80和433端口,否则不建议使用这两个端口。
  • 支持两条不同的Web服务规则,一条启用TLS(HTTPS),一条不启用TLS(http)监听同一个端口.
  1. 防火墙自动放行
  • Lucky运行在Openwrt等路由器环境,并且由iptables控制防火墙时此功能可以自动控制端口开放关闭
  • 如果你的Lucky运行在Windows或者Docker环境下可以关闭此功能
  1. TLS开关
  • 决定你是否使用https
  • 证书请在 菜单===>安全相关===>SSL证书 添加管理,每次手动添加证书后需要重启一次Web服务规则证书才生效。
  1. 添加Web服务子规则
  • 你可以添加任意条Web服务子规则
  • 子规则中的Web服务类型支持反向代理,重定向和URL跳转
  • 子规则中的前端域名添加的就是你所需的域名,不要包含http://开头部分,直接填写域名即可。例如 123.abc.com
  • 虽然前端域名与路径这部分参数支持 123.abc.com/def 这种带路径的方式,但不建议用作反向代理,只建议做跳转或重定向使用。使用路径形式反代有任何问题都不要反馈给开发者。
  • 子规则中的后端地址添加的就是你的内网的服务地址 ,例如 http://192.168.36.180:28888 , 当后端服务是带有自签证书的https服务时,你需要在定制模式中启用 **忽略后端TLS证书验证
  • 当服务类型是重定向或URL跳转时,后端地址你可以填写任意网址。重定向使用时支持 https://{host}:{port}的形式,实现http跳转https。
  • 子规则中的BasicAuth认证功能可以让陌生人不能轻易访问你的Web服务。
  • 携带客户端IP、追加客户端IP、跨域支持等更多功能可在定制模式中查看。小白直接忽略。

使用注意
添加完规则后要第一时间留意规则开关是否显示为开
或者查看添加Web服务规则旁边的模块日志,看是否存在 启用反向代理规则[http][:16666]成功" 这类的日志。
如果日志提示规则启用出错,请更换监听端口。
外网无法访问时,查看默认子规则和各个子规则是否有访问日志显示。如果没有访问记录自行检查防火墙/路由ipv4端口转发等自身网络设置。
有问题先查阅常见问题中 Web服务相关问题。

主要是子规则里面的内容,我是这么写的:

在这里插入图片描述
如果有多个子规则,则需要添加多个,前端地址是你的子域名,后端地址是你实际项目的后端地址。可以带着端口。

最后,点击确定即可。

我们可以检测一下通不通:

在这里插入图片描述
很棒,是通的。

总结

本文,我们主要利用了华为云Flexus X实例服务器解决了家里公网80 和443端口被封的问题,其实本质上还是在别的服务器上转发了一下,才实现了默认不带端口的访问形式。

为什么要这么做?
除了方便用户之外,主要是我代码里面都已经写好了,服务要是加上端口的话,我还得改代码去,懒的改…

整体,测了下利用华为云Flexus X实例服务器转发和直连,速度是差不多的,所以;理论上这种方案的可行性也是比较高的。

最后,再次推荐大家看看这个活动,真的很划算哇,点我查看

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆雄雄

哎,貌似还没开张来着呢~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值