5、WebApi 在腾讯云服务器中部署初试

前言:使用localhost或本机ip进行测试webapi的文章很多,但这只是在局域网中的使用,作为刚接触webapi的小白尚可,进阶就需要将接口部署到一个可供外网访问的服务器中进行测试,这里笔者记录下使用腾讯云服务器部署webapi的心路历程

服务器:腾讯云轻量应用服务器(免费一个月)

AspNet Core框架:.NET6

IIS:8.0

接口测试工具:Postman10.0.41

一、工具介绍

这是款试用期为1个月的轻量应用服务器,内存带宽硬盘流量作为测试用完全可以,最主要是给了个公网ip,就可以测试外网访问效果了。

二、IIS环境配置

2.1 运行环境检测

首先查看有没有运行环境

如果没有运行环境,我们需要在服务器上下载.NET Core Runtime,下面附上链接。

.NET Downloads (Linux, macOS, and Windows)

点击6进入下面这个界面 

下载下来一路安装就可以。

2.2 服务器开启IIS管理

在管理里点击【添加角色和功能】

到选择服务器角色,勾选【Web服务器(IIS)】

然后选择角色服务器,根据需求勾选。(为了避免出现问题,都勾上就可以,反正用不用都先加上没多大坏处(~ ̄▽ ̄)~ )

安装完成之后,打开IIS管理器

2.3 建站

添加应用程序池 

添加网站,网站名称随便写,应用程序池选择上一步创建的,物理路径选择发布好的publish文件夹

下面添加ip和端口号很重要,类型中可选http和https,先用http,这里IP地址,下拉有两个,一个是全部未分配,另一个是内网ip

 

这里要注意几点:

1、腾讯云服务器默认开启了80端口

2、iis有个默认网站是localhost:80

3、这里IP地址如果选择全部未分配,端口选择80,那么不管你物理路径填的哪,都会跳到这个iis内置的网站中去,因为这个http://localhost网站已经指向了这个静态网站了

如果IP地址选择了内网ip,端口不做修改,还是80端口,那么就是访问自己的网站了

目前这种方式和在自己电脑上做测试没什么区别,我们想要实现的功能是

http://公网IP:端口号/ 

这样,其他电脑才能访问我们的接口

2.3腾讯云服务器

ps:网站=ip(域名)+端口号 

而防火墙就是控制访问应用程序(网站)端口的,笔者使用的这款服务器,可以设置端口,来源这块服务器是这样解释的,笔者问了下客服,这里的源ip是指的访问者ip,比如笔者个人电脑(不是云服务器)的ip是172.16.16.10,如果将应用类型http(80)那一栏的来源设置成了172.16.16.10,那我只有我电脑或同样设置了172.16.16.10ip的电脑能访问到这个80端口。所以这里如果没有特殊要求需要屏蔽某些ip,可以默认是0。

然后是增加端口, 笔者之前使用的联通的公网ip,然后通过路由器映射到局域网中的一台电脑上面,在路由器上面需要配置下映射关系,就包括映射到那个局域网中的那个ip上面的那个端口上面,这样访问外网ip(其实笔者使用了域名,域名绑定了这个公网ip)+端口就会被指向局域网中的ip和端口,这里原理是一样的,不过不需要自己再去配置对应的ip和端口号配置,直接配置(开放端口号)就可以。

绑定下公网ip和开放的端口号

 

不管用,哈哈,如果将ip换成全部未分配,就可以,postman中填写公网ip就可以正常访问。

 

最好是选择“全部未分配”,用这个选项时,服务器本机,在IE浏览器地址栏输入http://localhosts/ 或127.0.0.1 可以打开本机架设的网站的主页,也可以输入内网IP地址打开内网的网站,做端口映射后,还可以从外网打开网站;就是说,选择这个选项,可以用所有的方法打开网站;
如果选择服务器的内网IP地址,就可以在局域网内部的其他电脑上输入服务器内网IP地址打开网站,不能在服务器本机上输入127.0.0.1打开网站,做端口映射后,也可以从外网打开网站;

如果设置为外网IP地址,就只能从外网打开网站,或者从内网以域名方式打开网站(需要端口映射)。不能从服务器本机上以127.0.0.1或内网IP地址方式打开网站。 意思就是设置为全部未分配就可以了。

iis在添加网站时,需要将网站内容绑定到一个ip上面,这个ip没什么限制,唯一一点要求就是能访问到这个网站的内容,例如本机测试就可以将ip设置成本机ip、localhost或127.0.0.1,局域网就需要将ip设置成本机ip(如果设置成localhost或127.0.0.1,其他电脑在局域网中找不到这个ip地址),如果要求外网能访问到,就需要做端口映射了。记住,最重要的是要让访问者找到你这个ip地址和端口号。

问题:那么云服务器这里为什么设置成全部未分配,然后我们在其他电脑上面通过postman访问就可以?为什么直接绑定公网ip不可以访问呢?

答:这里未分配里面代表了本机所有ip,包括了内网ip,而内网ip被外网ip进行了映射,所以这里未分配情况下,通过外网访问其实是访问的这个内网ip

2.4 总结:

1、腾讯云服务器默认做了映射,即公网ip映射内网ip,并且端口也在防火墙那里做了映射(一一对应)。

2、外网访问的是公网ip+端口,通过映射就相当于访问的内网ip+端口,将网站绑定到内网ip上面就可以,至于是选择全部未绑定还是选择内网ip,由你具体需求决定。

3、我们查找iisip绑定资料时往往会看到这样字眼,"只有指定IP可以访问网站",

这里指定ip就是我们需要绑定的,也是我们需要经常使用去访问网站的,笔者之前陷入一个怪圈,访问人不是我,是你,是他、她吗,那这个ip不应该填我、你、他、她的吗?这里其实是相对来说的,iis中网站要绑定的ip和网站是相对的,只有这个ip可以访问这个网站,而我们访问,需要使用工具的,这个工具就是iis中设置的这个ip,并不是我们自己ip去访问这个网站,我们是使用这个绑定ip去访问,就好比baidu.com这个域名,我们是使用baidu.com去访问它绑定的网站,并不是我们的电脑ip去访问百度网站的内容。

这里只是http通过公网ip做了绑定,并没有使用域名,笔者之前使用的联通的公网+腾讯申请的域名,在iis中的绑定有点不通,后期再测试。

三、引用文献

3.1 .NET Code WebAPI发布windows服务器部署_Sr-浮生的博客-CSDN博客_webapi发布

3.2 .Net Core WebApi(二)在Windows服务器上部署 - 风雨流逝 - 博客园

3.3 IIS中“绑定”,“IP地址全部未分配”到底是个什么玩意 - nd - 博客园

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值