• 关于

    软件可测试性如何搭建

    的搜索结果

问题

全栈测试:平衡单元测试和端到端测试

全栈开发人员的特点是能够从头到尾交付并发布一个特性。教程和书籍常常侧重于搭建全栈开发环境和让测试能够进行所需要的“管件(plumbing)”(我综合运用了Angular、Rails、Bootstra...
技术小菜鸟 2019-12-01 21:30:35 3268 浏览量 回答数 1

问题

性能测试技术怎么进行?

1 编写目的 制定性能测试实施指南,从技术角度制定性能测试实施过程中关键技术规范,更好的对系统进行性能测试,帮助客户更好地从技术上来规避系统上线后的风险。 2 适用范围 适用于性能测试所有需要...
猫饭先生 2019-12-01 21:26:08 1341 浏览量 回答数 0

问题

如何选择一款web漏洞扫描器

对于正在评估web漏洞扫描器的人应该读读这篇访谈文章。在这篇访谈中,我们谈论了选择web漏洞扫描器的过程以及在选择的过程中应该注意的因素。 最好的web漏洞扫描器应该是什么样的? 这个问题总是在web应用安全领...
elinks 2019-12-01 21:15:22 7018 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

CI&CD的核心还是在于高效稳定的自动化

杭州·云栖大会将于2016年10月13-16日在云栖小镇举办,在这场标签为互联网、创新、创业的云计算盛宴上,众多行业精英都将在这几天里分享超过450个演讲主题。 为了帮助大家进一步了解这场全球前言技术共振盛会的...
云效平台 2019-12-01 21:06:06 3667 浏览量 回答数 0

问题

从BUG库看一个测试开发团队的自我修养

程序员不喜欢BUG,每当有人说这里有个bug的时候,就不自觉的启动了自我防御机制,开始在想是不是这家伙不会用什么的,其实恰恰是程序员创造了bug;如果每个程序员都能写出完...
技术小菜鸟 2019-12-01 21:25:45 2799 浏览量 回答数 1

问题

支付宝的性能测试

       一、性能测试支付宝场景介绍   2013年双11过程当中,促销开启的第一分钟内支付宝的交易总额就突破了一亿元,短时间内大量用户涌入的情况下,如何保证用户的支付顺畅,...
云效平台 2019-12-01 21:47:13 5472 浏览量 回答数 1

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目
huc_逆天 2020-02-24 21:01:42 0 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目
huc_逆天 2020-02-25 11:08:12 0 浏览量 回答数 0

问题

如何建立基于RDS PostgreSQL的备库

用户在阿里云购买了RDS PostgreSQL,如何在自己的机房或者ECS上建立备库?关于如何构建逻辑备库,在我以前的文章有详细的讲解,所谓逻辑备库,是可以跨版本...
云栖大讲堂 2019-12-01 21:32:46 2301 浏览量 回答数 0

问题

某政务网站性能优化

门户类网站性能测试分析及调优 1 背景   前段时间,性能测试团队经历了一个规模较大的门户网站的性能优化工作,该网站的开发和合作涉及多个组织和部门,而且网站的重要性不言而喻,同时上...
猫饭先生 2019-12-01 21:25:38 1412 浏览量 回答数 0

回答

准备工作 登录控制台创建应用 手动在控制台根据实际业务需要创建对应表结构及其它相关配置,例如:索引,属性,数据源,过滤条件等。 下载此处我们提供的测试 应用结构模板,在创建应用结构时,选择“通过模板创建应用结构”,然后下一步,再选择左上角的“导入模板”,上传此处下载的应用结构模板,一直下一步直到完成。【此应用结构测试模板,可适用于标准版Java SDK文档中的搜索及推送数据Demo代码】 获取用户AccessKeyId和秘钥(secret) 用户可以使用阿里云的账号登录本系统,在登录完成后,点击“ACCESSKEY管理”可以查看您的Access Key ID(AccessKeyId)和 Access Key Secret(secret)。也可以在阿里云官网,点击“用户中心>我的服务>安全验证”即可到ACCESSKEY管理中心。 将SDK添加到项目中 使用OpenSearch SDK有两种方式: 1.下载SDK源码包,在下载中心下载最新版的JAVA SDK到本地,再下载此处的 slf4j-api-1.7.25 依赖 jar包,并将这2个jar包 import 到您的项目中,若项目中不包含此依赖jar包,会出现运行报错。 2.引入OpenSearch SDK依赖,通过maven二方库依赖的方式将opensearch的sdk加入到自己的项目中。 com.aliyun.opensearch aliyun-sdk-opensearch 3.1.3 创建client 通过控制台也可以完成创建应用的操作,这里介绍一下如何使用SDK实现。这里使用import SDK的方式,使用上面获取的AccessKey和Secret实例化一个SearcherClient(下面的操作里将继续使用如下的client),具体代码如下: import com.aliyun.opensearch.*; import com.aliyun.opensearch.sdk.dependencies.com.google.common.collect.Lists; import com.aliyun.opensearch.sdk.generated.OpenSearch; import com.aliyun.opensearch.sdk.generated.search.Config; import com.aliyun.opensearch.sdk.generated.search.SearchFormat; String appName = "应用名称"; String accesskey = "您的阿里云的Access Key ID"; String secret = "阿里云 Access Key ID 对应的 Access Key Secret"; String host = "这里的host需要根据访问应用基本信息页中提供的的API入口来确定"; //创建并构造OpenSearch对象 OpenSearch openSearch = new OpenSearch(accesskey, secret, host); //创建OpenSearchClient对象,并以OpenSearch对象作为构造参数 OpenSearchClient serviceClient = new OpenSearchClient(openSearch); 上传文档 OpenSearch的文档是一个json类型的字符串,结构如下: 打开控制台中的应用后,内部右上角也有 “上传文件” 功能,里面提供了类似下面的json格式测试数据,可下载下来直接上传使用,注意文件必须是utf8格式,且不能包含BOM头,否者上传会报错。 [ { “fields”:{...}, “cmd”:"..." } ... ] 一条文档是由fields字段和cmd字段构成的一个结构体,其中fields字段内包含文档的核心数据,cmd表示针对此条文档所做的操作,但标准版和高级版部分操作有所不同,标准版不支持update及部分字段更新,只支持全字段更新,因此对文档的添加,更新操作都是通过(add)方式实现,删除(delete)与原来相同。一段文档示例如下: [ { “fields”: { “id”: "0", “name”: "广大中小企业都有各种结构化的数据需要进行检索,目前一般采用数据库本身提供的搜索功能或者利用open source的搜索软件搭建,这样的做法不但会消耗网站本身的资源,性能也会很容易成为问题,而且相关性通常也不够好。我们的产品的目的是要利用阿里云先进的云计算和搜索技术向广大中小企业提供低成本,高质量,高性能,可定制的数据搜索解决方案。本项目和云搜索的通用解决方案目标略有不同,主要区别为本项目主要针对用户的结构化数据进行搜索,云搜索的通用解决方案则主要是针对网页型数据为处理对象。" }, “cmd”: "ADD" }, { “fields”: { “id”: "1", “name”: "云搜索( Cloud Search Engine),是运用云计算( Cloud Computing)技术的搜索引擎,可以绑定多个域名,定义搜索范围和性质,同时,不同域名可以有不同UI和流程,这个UI和流程由运行在云计算服务器上的个性化程序完成。作为新型搜索引擎,与传统搜索引擎需要输入多个关键字不同的是,用户可以告诉搜索引擎每个搜索关键字的比重,每个搜索关键字都被置于“搜索云”中,并用不同大小,粗细的字型区分。 " }, “cmd”: "ADD" } ] 将文档上传到应用的某个表中的代码如下: //定义DocumentClient对象添加json格式doc数据批量提交 DocumentClient documentClient = new DocumentClient(serviceClient); table_name = "要上传数据的表名"; data = "[{"cmd":"add", "fields":{"id":"0","name":"blabla..."}}]"; //执行推送操作 OpenSearchResult osr = documentClient.push(data, appName, table_name); 另外还可以通过DocumentClient类的提供的add、remove二个接口生成待上传的数据,最后在调用push方法将数据上传; 开始搜索 OpenSearch通过设置可以实现高度个性化的搜索需求,但通用的基本的搜索功能只需通过非常简单的设置即可实现: //创建SearcherClient对象,并以OpenSearchClient对象作为构造参数 SearcherClient searcherClient = new SearcherClient(serviceClient); //定义Config对象,用于设定config子句参数,指定应用名,分页,数据返回格式等等 Config config = new Config(Lists.newArrayList(appName)); config.setStart(0); config.setHits(5); //设置返回格式为fulljson格式 config.setSearchFormat(SearchFormat.JSON); // 创建参数对象 SearchParams searchParams = new SearchParams(config); // 指定搜索的关键词,这里要指定在哪个索引上搜索,如果不指定的话默认在使用“default”索引(索引字段名称是您在您的数据结构中的“索引字段列表”中对应字段。),若需多个索引组合查询,需要在setQuery处合并,否则若设置多个setQuery子句,则后面的子句会替换前面子句 searchParams.setQuery("name:'搜索'"); //设置查询过滤条件 searchParams.setFilter("id>0"); //创建sort对象,并设置二维排序 Sort sort = new Sort(); //设置id字段降序 sort.addToSortFields(new SortField("id", Order.DECREASE)); //若id相同则以RANK相关性算分升序 sort.addToSortFields(new SortField("RANK", Order.INCREASE)); //添加Sort对象参数 searchParams.setSort(sort); //执行查询语句返回数据对象 SearchResult searchResult = searcherClient.execute(searchParams); //以字符串返回查询数据 String result = searchResult.getResult(); 调试 通过上面的操作我们已经可以使用基本的搜索功能了,但是优化搜索、提高搜索结果相关性是一个漫长的的过程,需要我们不断试错和迭代来一点点改进。在这个过程中如果遇到问题或者发现结果与预期不一致时可以通过下面的接口获得请求的详细信息,您可以通过这些信息排查问题。特别是当您遇到问题,在旺旺群、钉钉群中寻求帮助的时候,根据您提供的调试信息我们可以迅速帮您定位到问题所在,主要向我们提供查询异常或不符合预期返回的,请求ID 或 查询http请求串等信息,进行查询分析定位原因。 部分用户有可能会有记录查询请求串的需求,例如打印上一次查询请求串信息,该信息中的部分查询子句可以直接截取出来放到控制台中的搜索测试框中运行调试,可参考如下代码 SearchResultDebug searchdebugrst = searcherClient.executeDebug(searchParams); System.out.println(searchdebugrst.getRequestUrl());
保持可爱mmm 2020-03-26 22:02:23 0 浏览量 回答数 0

回答

vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。 前提条件 已注册阿里云账号。如还未注册,请先完成账号注册。 已完成实名认证。如还未认证,请先完成实名认证。 已创建ECS实例并为实例分配了公网IP地址。若尚未创建,请参见创建ECS实例。 背景信息 FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式: 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。 说明 大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。 FTP支持以下三种认证模式: 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。 本教程中介绍的FTP服务器配置方法如下表所示。 工作模式 匿名用户 本地用户 主动模式 主动模式下,开通匿名用户向FTP服务器上传文件权限的配置方法。 主动模式下,使用本地用户访问FTP服务器的配置方法。 被动模式 无。 被动模式下,使用本地用户访问FTP服务器的配置方法。 使用限制 本教程示例步骤使用以下资源版本: 实例规格:ecs.c6.large 操作系统:CentOS 7.2 64位 vsftpd:3.0.2 浏览器:Internet Explorer 11 当您使用不同软件版本时,可能需要根据实际情况调整命令和参数配置。 操作步骤 Linux实例搭建FTP站点具体步骤如下: 步骤一:安装vsftpd 步骤二:配置vsftpd(匿名用户模式) 步骤二:配置vsftpd(本地用户模式) 步骤三:设置安全组 步骤四:客户端测试 视频教程 步骤一:安装vsftpd 远程连接Linux实例。 连接方法,请参见连接方式介绍。 运行以下命令安装vsftpd。 yum install -y vsftpd 出现如下图所示界面时,表示安装成功。install_vsftp_successfully 运行以下命令设置FTP服务开机自启动。 systemctl enable vsftpd.service 运行以下命令启动FTP服务。 systemctl start vsftpd.service 运行以下命令查看FTP服务监听的端口。 netstat -antup | grep ftp 出现如下图所示界面,表示FTP服务已启动,监听的端口号为21。此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。install_vsftpd_3 步骤二:配置vsftpd(匿名用户模式) 配置主动模式下匿名用户上传文件权限的操作步骤如下: 修改配置文件/etc/vsftpd/vsftpd.conf。 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。 按i进入编辑模式。 将写权限修改为write_enable=YES。 将匿名上传权限修改为anon_upload_enable=YES。 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。 修改后的配置文件,如下图所示。匿名权限1 运行以下命令更改/var/ftp/pub目录的权限,为FTP用户添加写权限。 chmod o+w /var/ftp/pub/ 运行以下命令重新加载配置文件。 systemctl restart vsftpd.service 匿名权限2 步骤二:配置vsftpd(本地用户模式) 配置本地用户访问FTP服务器的操作步骤如下: 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。 useradd ftptest 运行以下命令修改ftptest用户的密码。 passwd ftptest 运行以下命令创建一个供FTP服务使用的文件目录。 mkdir /var/ftp/test 运行以下命令更改/var/ftp/test目录的拥有者为ftptest。 chown -R ftptest:ftptest /var/ftp/test 修改vsftpd.conf配置文件。 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。 按i进入编辑模式。 根据实际需要,配置FTP服务器为主动模式或被动模式。 注意 修改和添加配置文件内的信息时,请注意格式问题。例如,添加多余的空格会造成无法重启服务的结果。 配置FTP为主动模式的参数如下: #除下面提及的参数外,其他参数保持默认值即可。 #修改下列参数的值 anonymous_enable=NO #禁止匿名登录FTP服务器 local_enable=YES #允许本地用户登录FTP服务器 listen=YES #监听IPv4 sockets #在行首添加#注释掉以下参数 #listen_ipv6=YES #关闭监听IPv6 sockets #添加下列参数 chroot_local_user=YES #全部用户被限制在主目录 chroot_list_enable=YES #启用例外用户名单 chroot_list_file=/etc/vsftpd/chroot_list #指定例外用户列表文件,列表中的用户不被锁定在主目录 allow_writeable_chroot=YES local_root=/var/ftp/test #设置本地用户登录后所在的目录 配置FTP为被动模式的参数如下: #除下面提及的参数外,其他参数保持默认值即可。 #修改下列参数的值 anonymous_enable=NO #禁止匿名登录FTP服务器 local_enable=YES #允许本地用户登录FTP服务器 listen=YES #监听IPv4 sockets #在行首添加#注释掉以下参数 #listen_ipv6=YES #关闭监听IPv6 sockets #添加下列参数 local_root=/var/ftp/test #设置本地用户登录后所在目录 chroot_local_user=YES #全部用户被限制在主目录 chroot_list_enable=YES #启用例外用户名单 chroot_list_file=/etc/vsftpd/chroot_list #指定例外用户列表文件,列表中用户不被锁定在主目录 allow_writeable_chroot=YES pasv_enable=YES #开启被动模式 pasv_address=<FTP服务器公网IP地址> #本教程中为Linux实例公网IP pasv_min_port= #设置被动模式下,建立数据传输可使用的端口范围的最小值 pasv_max_port= #设置被动模式下,建立数据传输可使用的端口范围的最大值 说明 建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。 更多参数详情,请参见vsftp配置文件及参数说明。 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。 创建chroot_list文件,并在文件中写入例外用户名单。 运行vim /etc/vsftpd/chroot_list命令创建chroot_list文件。 按i进入编辑模式。 输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。 说明 没有例外用户时,也必须创建chroot_list文件,内容可为空。 运行以下命令重启vsftpd服务。 systemctl restart vsftpd.service 步骤三:设置安全组 搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口。具体步骤,请参见添加安全组规则。 说明 大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfig或ifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法登录FTP服务器,请重新确认其公网IP地址。 FTP为主动模式时:端口21。配置详情如下表所示。 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 入方向 允许 自定义TCP 21/21 IPv4地址段访问 所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。 允许所有客户端访问时,授权对象为0.0.0.0/0。 FTP为被动模式时:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 入方向 允许 自定义TCP 21/21 IPv4地址段访问 所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。 允许所有客户端访问时,授权对象为0.0.0.0/0。 入方向 允许 自定义TCP pasv_min_port/pasv_max_port IPv4地址段访问 所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。 允许所有客户端访问时,授权对象为0.0.0.0/0。 步骤四:客户端测试 FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。本教程以Windows自带的IE浏览器为例,分别介绍FTP服务器配置为主动模式或被动模式时的访问步骤。 说明 使用浏览器访问FTP服务器出错时,建议您清除浏览器缓存后再尝试。 FTP服务器为主动模式 打开客户端的IE浏览器。 将浏览器设置为主动访问模式。选择设置 > Internet 选项 > 高级。选中启用 FTP 文件夹视图,取消勾选使用被动 FTP。 在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,本教程中为Linux实例的公网IP地址。例如:ftp://39.0.0.1:21。 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。 说明 此步骤仅适用于本地用户,匿名用户无需输入用户名和密码即可登录FTP服务器。 FTP服务器为被动模式 打开客户端的IE浏览器。 将浏览器设置为被动访问模式。选择设置 > Internet 选项 > 高级。选中启用FTP文件夹视图和使用被动FTP。 在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,本教程中为Linux实例的公网IP地址。例如:ftp://39.10.0.28:21。 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。 说明 此步骤仅适用于本地用户,匿名用户无需输入用户名和密码即可登录FTP服务器。 vsftp配置文件及参数说明 /etc/vsftpd目录下文件说明如下: /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。 /etc/vsftpd/ftpusers是黑名单文件,此文件中的用户不允许访问FTP服务器。 /etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。 配置文件vsftpd.conf参数说明如下: 用户登录控制参数说明如下表所示。 参数 说明 anonymous_enable=YES 接受匿名用户 no_anon_password=YES 匿名用户login时不询问口令 anon_root=(none) 匿名用户主目录 local_enable=YES 接受本地用户 local_root=(none) 本地用户主目录 用户权限控制参数说明如下表所示。 参数 说明 write_enable=YES 可以上传文件(全局控制) local_umask=022 本地用户上传的文件权限 file_open_mode=0666 上传文件的权限配合umask使用 anon_upload_enable=NO 匿名用户可以上传文件 anon_mkdir_write_enable=NO 匿名用户可以建目录 anon_other_write_enable=NO 匿名用户修改删除 chown_username=lightwiter 匿名上传文件所属用户名 后续步骤 对FTP服务进行安全加固。具体操作,请参见安全加固方案。
1934890530796658 2020-03-26 00:27:07 0 浏览量 回答数 0

回答

微服务 (MicroServices) 架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点 (technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前在两家大型互联网公司参与和主导过大型服务化体系和框架建设,同时在这块也投入了很多时间去学习和研究,有一些经验和学习心得,可以和大家一起分享。 服务注册、发现、负载均衡和健康检查和单块 (Monolithic) 架构不同,微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信,这时候必然引入一个服务注册发现问题,也就是说服务提供方要注册通告服务地址,服务的调用方要能发现目标服务,同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题。根据负载均衡 LB 所在位置的不同,目前主要的服务注册、发现和负载均衡方案有三种: 第一种是集中式 LB 方案,如下图 Fig 1,在服务消费者和服务提供者之间有一个独立的 LB,LB 通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy 等实现。LB 上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向 LB 发起请求,由 LB 以某种策略(比如 Round-Robin)做负载均衡后将请求转发到目标服务。LB 一般具备健康检查能力,能自动摘除不健康的服务实例。服务消费方如何发现 LB 呢?通常的做法是通过 DNS,运维人员为服务配置一个 DNS 域名,这个域名指向 LB。 Fig 1, 集中式 LB 方案 集中式 LB 方案实现简单,在 LB 上也容易做集中式的访问控制,这一方案目前还是业界主流。集中式 LB 的主要问题是单点问题,所有服务调用流量都经过 LB,当服务数量和调用量大的时候,LB 容易成为瓶颈,且一旦 LB 发生故障对整个系统的影响是灾难性的。另外,LB 在服务消费方和服务提供方之间增加了一跳 (hop),有一定性能开销。 第二种是进程内 LB 方案,针对集中式 LB 的不足,进程内 LB 方案将 LB 的功能以库的形式集成到服务消费方进程里头,该方案也被称为软负载 (Soft Load Balancing) 或者客户端负载方案,下图 Fig 2 展示了这种方案的工作原理。这一方案需要一个服务注册表 (Service Registry) 配合支持服务自注册和自发现,服务提供方启动时,首先将服务地址注册到服务注册表(同时定期报心跳到服务注册表以表明服务的存活状态,相当于健康检查),服务消费方要访问某个服务时,它通过内置的 LB 组件向服务注册表查询(同时缓存并定期刷新)目标服务地址列表,然后以某种负载均衡策略选择一个目标服务地址,最后向目标服务发起请求。这一方案对服务注册表的可用性 (Availability) 要求很高,一般采用能满足高可用分布式一致的组件(例如 Zookeeper, Consul, Etcd 等)来实现。 Fig 2, 进程内 LB 方案 进程内 LB 方案是一种分布式方案,LB 和服务发现能力被分散到每一个服务消费者的进程内部,同时服务消费方和服务提供方之间是直接调用,没有额外开销,性能比较好。但是,该方案以客户库 (Client Library) 的方式集成到服务调用方进程里头,如果企业内有多种不同的语言栈,就要配合开发多种不同的客户端,有一定的研发和维护成本。另外,一旦客户端跟随服务调用方发布到生产环境中,后续如果要对客户库进行升级,势必要求服务调用方修改代码并重新发布,所以该方案的升级推广有不小的阻力。 进程内 LB 的案例是 Netflix 的开源服务框架,对应的组件分别是:Eureka 服务注册表,Karyon 服务端框架支持服务自注册和健康检查,Ribbon 客户端框架支持服务自发现和软路由。另外,阿里开源的服务框架 Dubbo 也是采用类似机制。 第三种是主机独立 LB 进程方案,该方案是针对第二种方案的不足而提出的一种折中方案,原理和第二种方案基本类似,不同之处是,他将 LB 和服务发现功能从进程内移出来,变成主机上的一个独立进程,主机上的一个或者多个服务要访问目标服务时,他们都通过同一主机上的独立 LB 进程做服务发现和负载均衡,见下图 Fig 3。 Fig 3 主机独立 LB 进程方案 该方案也是一种分布式方案,没有单点问题,一个 LB 进程挂了只影响该主机上的服务调用方,服务调用方和 LB 之间是进程内调用,性能好,同时,该方案还简化了服务调用方,不需要为不同语言开发客户库,LB 的升级不需要服务调用方改代码。该方案的不足是部署较复杂,环节多,出错调试排查问题不方便。 该方案的典型案例是 Airbnb 的 SmartStack 服务发现框架,对应组件分别是:Zookeeper 作为服务注册表,Nerve 独立进程负责服务注册和健康检查,Synapse/HAproxy 独立进程负责服务发现和负载均衡。Google 最新推出的基于容器的 PaaS 平台 Kubernetes,其内部服务发现采用类似的机制。 服务前端路由微服务除了内部相互之间调用和通信之外,最终要以某种方式暴露出去,才能让外界系统(例如客户的浏览器、移动设备等等)访问到,这就涉及服务的前端路由,对应的组件是服务网关 (Service Gateway),见图 Fig 4,网关是连接企业内部和外部系统的一道门,有如下关键作用: 服务反向路由,网关要负责将外部请求反向路由到内部具体的微服务,这样虽然企业内部是复杂的分布式微服务结构,但是外部系统从网关上看到的就像是一个统一的完整服务,网关屏蔽了后台服务的复杂性,同时也屏蔽了后台服务的升级和变化。安全认证和防爬虫,所有外部请求必须经过网关,网关可以集中对访问进行安全控制,比如用户认证和授权,同时还可以分析访问模式实现防爬虫功能,网关是连接企业内外系统的安全之门。限流和容错,在流量高峰期,网关可以限制流量,保护后台系统不被大流量冲垮,在内部系统出现故障时,网关可以集中做容错,保持外部良好的用户体验。监控,网关可以集中监控访问量,调用延迟,错误计数和访问模式,为后端的性能优化或者扩容提供数据支持。日志,网关可以收集所有的访问日志,进入后台系统做进一步分析。 Fig 4, 服务网关 除以上基本能力外,网关还可以实现线上引流,线上压测,线上调试 (Surgical debugging),金丝雀测试 (Canary Testing),数据中心双活 (Active-Active HA) 等高级功能。 网关通常工作在 7 层,有一定的计算逻辑,一般以集群方式部署,前置 LB 进行负载均衡。 开源的网关组件有 Netflix 的 Zuul,特点是动态可热部署的过滤器 (filter) 机制,其它如 HAproxy,Nginx 等都可以扩展作为网关使用。 在介绍过服务注册表和网关等组件之后,我们可以通过一个简化的微服务架构图 (Fig 5) 来更加直观地展示整个微服务体系内的服务注册发现和路由机制,该图假定采用进程内 LB 服务发现和负载均衡机制。在下图 Fig 5 的微服务架构中,服务简化为两层,后端通用服务(也称中间层服务 Middle Tier Service)和前端服务(也称边缘服务 Edge Service,前端服务的作用是对后端服务做必要的聚合和裁剪后暴露给外部不同的设备,如 PC,Pad 或者 Phone)。后端服务启动时会将地址信息注册到服务注册表,前端服务通过查询服务注册表就可以发现然后调用后端服务;前端服务启动时也会将地址信息注册到服务注册表,这样网关通过查询服务注册表就可以将请求路由到目标前端服务,这样整个微服务体系的服务自注册自发现和软路由就通过服务注册表和网关串联起来了。如果以面向对象设计模式的视角来看,网关类似 Proxy 代理或者 Façade 门面模式,而服务注册表和服务自注册自发现类似 IoC 依赖注入模式,微服务可以理解为基于网关代理和注册表 IoC 构建的分布式系统。 Fig 5, 简化的微服务架构图 服务容错当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务,技术上称为 1 -> N 扇出 (见图 Fig 6)。在实际生产环境中,服务往往不是百分百可靠,服务可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。在一个高流量的网站中,某个单一后端一旦发生延迟,可能在数秒内导致所有应用资源 (线程,队列等) 被耗尽,造成所谓的雪崩效应 (Cascading Failure,见图 Fig 7),严重时可致整个网站瘫痪。 Fig 6, 服务依赖 Fig 7, 高峰期单个服务延迟致雪崩效应 经过多年的探索和实践,业界在分布式服务容错一块探索出了一套有效的容错模式和最佳实践,主要包括: Fig 8, 弹性电路保护状态图 电路熔断器模式 (Circuit Breaker Patten), 该模式的原理类似于家里的电路熔断器,如果家里的电路发生短路,熔断器能够主动熔断电路,以避免灾难性损失。在分布式系统中应用电路熔断器模式后,当目标服务慢或者大量超时,调用方能够主动熔断,以防止服务被进一步拖垮;如果情况又好转了,电路又能自动恢复,这就是所谓的弹性容错,系统有自恢复能力。下图 Fig 8 是一个典型的具备弹性恢复能力的电路保护器状态图,正常状态下,电路处于关闭状态 (Closed),如果调用持续出错或者超时,电路被打开进入熔断状态 (Open),后续一段时间内的所有调用都会被拒绝 (Fail Fast),一段时间以后,保护器会尝试进入半熔断状态 (Half-Open),允许少量请求进来尝试,如果调用仍然失败,则回到熔断状态,如果调用成功,则回到电路闭合状态。舱壁隔离模式 (Bulkhead Isolation Pattern),顾名思义,该模式像舱壁一样对资源或失败单元进行隔离,如果一个船舱破了进水,只损失一个船舱,其它船舱可以不受影响 。线程隔离 (Thread Isolation) 就是舱壁隔离模式的一个例子,假定一个应用程序 A 调用了 Svc1/Svc2/Svc3 三个服务,且部署 A 的容器一共有 120 个工作线程,采用线程隔离机制,可以给对 Svc1/Svc2/Svc3 的调用各分配 40 个线程,当 Svc2 慢了,给 Svc2 分配的 40 个线程因慢而阻塞并最终耗尽,线程隔离可以保证给 Svc1/Svc3 分配的 80 个线程可以不受影响,如果没有这种隔离机制,当 Svc2 慢的时候,120 个工作线程会很快全部被对 Svc2 的调用吃光,整个应用程序会全部慢下来。限流 (Rate Limiting/Load Shedder),服务总有容量限制,没有限流机制的服务很容易在突发流量 (秒杀,双十一) 时被冲垮。限流通常指对服务限定并发访问量,比如单位时间只允许 100 个并发调用,对超过这个限制的请求要拒绝并回退。回退 (fallback),在熔断或者限流发生的时候,应用程序的后续处理逻辑是什么?回退是系统的弹性恢复能力,常见的处理策略有,直接抛出异常,也称快速失败 (Fail Fast),也可以返回空值或缺省值,还可以返回备份数据,如果主服务熔断了,可以从备份服务获取数据。Netflix 将上述容错模式和最佳实践集成到一个称为 Hystrix 的开源组件中,凡是需要容错的依赖点 (服务,缓存,数据库访问等),开发人员只需要将调用封装在 Hystrix Command 里头,则相关调用就自动置于 Hystrix 的弹性容错保护之下。Hystrix 组件已经在 Netflix 经过多年运维验证,是 Netflix 微服务平台稳定性和弹性的基石,正逐渐被社区接受为标准容错组件。 服务框架微服务化以后,为了让业务开发人员专注于业务逻辑实现,避免冗余和重复劳动,规范研发提升效率,必然要将一些公共关注点推到框架层面。服务框架 (Fig 9) 主要封装公共关注点逻辑,包括: Fig 9, 服务框架 服务注册、发现、负载均衡和健康检查,假定采用进程内 LB 方案,那么服务自注册一般统一做在服务器端框架中,健康检查逻辑由具体业务服务定制,框架层提供调用健康检查逻辑的机制,服务发现和负载均衡则集成在服务客户端框架中。监控日志,框架一方面要记录重要的框架层日志、metrics 和调用链数据,还要将日志、metrics 等接口暴露出来,让业务层能根据需要记录业务日志数据。在运行环境中,所有日志数据一般集中落地到企业后台日志系统,做进一步分析和处理。REST/RPC 和序列化,框架层要支持将业务逻辑以 HTTP/REST 或者 RPC 方式暴露出来,HTTP/REST 是当前主流 API 暴露方式,在性能要求高的场合则可采用 Binary/RPC 方式。针对当前多样化的设备类型 (浏览器、普通 PC、无线设备等),框架层要支持可定制的序列化机制,例如,对浏览器,框架支持输出 Ajax 友好的 JSON 消息格式,而对无线设备上的 Native App,框架支持输出性能高的 Binary 消息格式。配置,除了支持普通配置文件方式的配置,框架层还可集成动态运行时配置,能够在运行时针对不同环境动态调整服务的参数和配置。限流和容错,框架集成限流容错组件,能够在运行时自动限流和容错,保护服务,如果进一步和动态配置相结合,还可以实现动态限流和熔断。管理接口,框架集成管理接口,一方面可以在线查看框架和服务内部状态,同时还可以动态调整内部状态,对调试、监控和管理能提供快速反馈。Spring Boot 微框架的 Actuator 模块就是一个强大的管理接口。统一错误处理,对于框架层和服务的内部异常,如果框架层能够统一处理并记录日志,对服务监控和快速问题定位有很大帮助。安全,安全和访问控制逻辑可以在框架层统一进行封装,可做成插件形式,具体业务服务根据需要加载相关安全插件。文档自动生成,文档的书写和同步一直是一个痛点,框架层如果能支持文档的自动生成和同步,会给使用 API 的开发和测试人员带来极大便利。Swagger 是一种流行 Restful API 的文档方案。当前业界比较成熟的微服务框架有 Netflix 的 Karyon/Ribbon,Spring 的 Spring Boot/Cloud,阿里的 Dubbo 等。 运行期配置管理服务一般有很多依赖配置,例如访问数据库有连接字符串配置,连接池大小和连接超时配置,这些配置在不同环境 (开发 / 测试 / 生产) 一般不同,比如生产环境需要配连接池,而开发测试环境可能不配,另外有些参数配置在运行期可能还要动态调整,例如,运行时根据流量状况动态调整限流和熔断阀值。目前比较常见的做法是搭建一个运行时配置中心支持微服务的动态配置,简化架构如下图 (Fig 10): Fig 10, 服务配置中心 动态配置存放在集中的配置服务器上,用户通过管理界面配置和调整服务配置,具体服务通过定期拉 (Scheduled Pull) 的方式或者服务器推 (Server-side Push) 的方式更新动态配置,拉方式比较可靠,但会有延迟同时有无效网络开销 (假设配置不常更新),服务器推方式能及时更新配置,但是实现较复杂,一般在服务和配置服务器之间要建立长连接。配置中心还要解决配置的版本控制和审计问题,对于大规模服务化环境,配置中心还要考虑分布式和高可用问题。 配置中心比较成熟的开源方案有百度的 Disconf,360 的 QConf,Spring 的 Cloud Config 和阿里的 Diamond 等。 Netflix 的微服务框架Netflix 是一家成功实践微服务架构的互联网公司,几年前,Netflix 就把它的几乎整个微服务框架栈开源贡献给了社区,这些框架和组件包括: Eureka: 服务注册发现框架Zuul: 服务网关Karyon: 服务端框架Ribbon: 客户端框架Hystrix: 服务容错组件Archaius: 服务配置组件Servo: Metrics 组件Blitz4j: 日志组件下图 Fig 11 展示了基于这些组件构建的一个微服务框架体系,来自 recipes-rss。 Fig 11, 基于 Netflix 开源组件的微服务框架 Netflix 的开源框架组件已经在 Netflix 的大规模分布式微服务环境中经过多年的生产实战验证,正逐步被社区接受为构造微服务框架的标准组件。Pivotal 去年推出的 Spring Cloud 开源产品,主要是基于对 Netflix 开源组件的进一步封装,方便 Spring 开发人员构建微服务基础框架。对于一些打算构建微服务框架体系的公司来说,充分利用或参考借鉴 Netflix 的开源微服务组件 (或 Spring Cloud),在此基础上进行必要的企业定制,无疑是通向微服务架构的捷径。 原文地址:https://www.infoq.cn/article/basis-frameworkto-implement-micro-service#anch130564%20%EF%BC%8C
auto_answer 2019-12-02 01:55:22 0 浏览量 回答数 0

问题

程序员的3年之痒改变的不止薪水

       写在开始,这里借用特立独行的猫的一句话,你可以原地踏步,但别觉得别人都该和你一样。        程序员的3年之痒,的确是时候该挠挠自己了。3年的程...
小柒2012 2019-12-01 21:08:36 19089 浏览量 回答数 18

回答

一 、iOS APP 上架流程简介 1. 申请开发者账号 苹果的开发者账号主要分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别为$99、$99、$299、免费)。一般开发者申请的都是个人或者公司的,企业的开发者账号开发应用不能发布到App Store,只能企业内部使用。这个申请过程一般可能需要一个星期左右。公司和企业的需要邓白氏码,如果邓白氏码未申请,请先申请邓白氏码,这个过程需要一到两个星期。 创建证书、AppID、生成描述文件 通过 Mac 的钥匙串工具,生成证书请求文件,下载证书,这里需要注意的是下载下来的证书只能在请求该证书的电脑上使用,如果想给其他开发者使用需要将已经导入的证书导出为个人信息交换(.p12)格式供他人使用。 AppID 的创建需要用到项目的 Bundle ID,之后便可以创建描述文件了。 在开发者中心的 iTunes Connect 中配置 App 相关信息 在开发者中心里的 iTunes Connect 里的 APP 选项中新建 APP 项目并配置相应的信息(需要各个版本的屏幕截图,运行模拟器,调到最大(command+1)用 command+s 截图,还有就是一个1024*1024的图标,不能有圆角) 使用 Xcode 打包上传 App 将 2 步骤中申请好的证书和描述文件正确配置到 Xcode 中,设置好Xcode 的一些属性: 在Xcode中选择iOS Device(这里不能选择模拟器) 如果应用不支持横屏,请在 General 选项中将 Landscape Left 和 Landscape Right 两项的勾选去掉 查看版本号和构建版本号 将断点、全局断点、僵尸模式等都去掉 设置为 Release 模式 之后便可选择 Xcode->Product->Archive 打包项目,打包完成后选择 Upload to App Store 上传。如果不想使用 Xcode 上传的话,也可以选择 Export 导出 ipa 文件, 需要注意的是在导出时,必须选择 Save for iOS App Store Deployment。然后通过Application Loader 工具上传 ipa 文件。 提交审核 以上步骤完成后,返回 iTunes Connect 上查看自己的 App 信息,在构建版本中选择刚刚上传的 App 版本,此时有可能显示正在处理,这时可能需要等几分钟再回来查看。选择好版本后点击提交以供审核,这时 App 会变成等待审核状态。 后续 后续就是等待苹果的审核人员审核应用了,如果一切顺利的话,这个过程需要一到两个工作日便可完成审核,当然前提是你的应用符合苹果的审核条款。如果审核不通过,请及时根据反馈信息修改应用,再次提交直到符合要求。审核通过后,如果之前选择已经选择好自动发布,便可在 AppStore 上查看和下载应用了。 二 、iOS 上架审核过程常见的坑与解决方法 1. 问题:用户生成内容(UGC)缺少必要的审核 为了防止非法滥用用户生成的内容,从而给用户提供虚假信息、盗取用户的知识产权,社交应用以及应用当中包含用户生成的信息的应用必须包括下述功能: 过滤不良内容 提供举报机制 后台服务可以提供阻止骚扰用户的行为 提供官方联系方式,让用户可以快速联系到开发商 解决方案: 维秀直播 App 提供了用户实时弹幕功能,所以涉及到了 UGC,他们的处理方法是增加关键词过滤,还有通过房管的方式人工审核,处理违规用户。 问题:应用中使用了 IDFA 被拒绝 IDFA 主要被用于广告中区分设备的作用。AppStore 禁止没有使用广告而采集 IDFA 的 App 上架,所以如果 App 本身没有广告的话,使用第三方 SDK 要注意检查是否含有 IDFA 广告模块。 解决方案: 如果应用本身有集成广告的话,只需要在提交审核的时候勾选正确的广告标识符选项即可。 如果应用本身未集成广告,却包含 IDFA 的话。这种情况一般都是集成的第三方 SDK 中包含 IDFA 导致的。首先寻找是否有不包含 IDFA 的 SDK 版本,如果没有的话可以参考 ShareSDK 的解决方法,通过后台配置在审核期间为应用添加广告,审核完成过后将广告展示去掉。 3. 问题:应用不支持 IPv6网络下使用 2016年6月1号起,苹果的审核人员会在 IPv6 网络上审核你的应用,所以如果你的应用程序无法使用 IPv6 协议,可能会被拒绝。 解决方案: 卓易夺宝和乐动听 App 上架过程中就因为 IPv6 的支持原因被拒。他们的解决方案是: 协调后端人员添加对 IPv6 网络的支持。 App 端更新相关的第三方 SDK,比如使用 ASI 或者 AFN 的版本太低,使用最新的 AFN 即可解决问题。 当然这些做完之后最好在Mac 上面搭建 IPv6网络供测试人员进行完测试再重新发布。 4. 问题:第三方登录、支付、分享未安装应用,提示下载被拒 这个问题其实被拒的原因有两种,第一种是未安装应用没有任何提示,这种情况下相当于应用有无效的按钮所以会被拒;第二种是提示下载对应的第三方 App,这也是苹果所不允许的。 解决方案: 最新的第三方登录等相关的 SDK 目前已知的(微信,QQ,微博)都已经对这种情况做了处理,在未安装的情况下会调用 web 进行登录,所以如果测试过程中发现可以成功在 web 上登录的话可以不做处理。以前在没有这种处理机制的情况下需要开发者调用对应接口,先判断是否安装了相应的第三方 APP,如果未安装,需要隐藏按钮,这样便可轻松过审。 问题:虚拟产品未使用应用内支付(IAP)被拒 根据苹果官方最新的审核条款:如果你希望通过付费才可以解锁你的应用当中的一些功能(例如,订阅内容,游戏货币,游戏关卡,获取优质内容,解锁完整版本),你必须使用应用内付费(IAP)。如果这种情况下,应用使用了其他的第三方支付,应用将被拒绝上架。 解决方案: 审核的时候,把相应的虚拟产品隐藏起来,通过后再放出来,此招有风险,可能会受到警告信,甚至被封号,如果用户量小就无所谓了,先把App 搞上架! 审核的时候,走 IAP 的支付方式,审核完成后再通过服务器配置动态切换到支付宝、微信等第三方支付。该法类似于方案1,也存在风险。 学习58同城,让用户去网站购买产品,买了产品的账号到移动端使用功能。 老老实实的使用 IAP 吧。 6. 问题:使用后台定位被拒 关于位置服务苹果的审核条款原文如下: 使用位置服务的应用程序必须提供和位置服务直接相关的功能。使用基于位置的API不允许用于提供紧急服务,或者实现自动控制车辆、飞行器以及其他设备(小型的设备例如小型无人机和玩具例外),远程控制汽车警报系统等。在收集、传输和使用用户的位置数据之前,请确保你已经取得了用户的同意。 如果应用程序使用了后台定位服务,务必在应用当中阐明其目的。并且使用后台定位的话需要提供一个明确的提醒告诉用户这么做会加快电量消耗。 一般应用在这一块被拒的原因有以下几种: 应用根本不需要定位功能。 应用需要定位功能,但是只需要短暂的获取少数的用户的位置,比如美团,新闻类的应用需要获得当前用户的所在城市,却使用了后台定位模式。 应用确实需要使用后台定位,比如打车类软件,但是应用中却没有任何界面展示这些定位数据。 解决方案: 如果你的应用根本不需要定位功能,但是还是在 info.plist 里面添加了 location in the UIBackgroundModes key ,那么在 plist 文件里面移除 UIBackgroundModes key 就可以,这中情况较少,新手小白会犯这种错误。 如果只是简单获取位置不需要使用后台定位,只需要去掉info.plist 的文件中的 UIBackgroundModes 即可。 这种情况比较复杂,推荐的做法是通过表格或者轨迹展示出后台定位的数据,再提交审核的时候告诉苹果那个功能需要后台定位,具体展示后台定位的 数据在那个界面,最后需要 Continued use of GPS running in the background can dramatically decrease battery life加到 App 描述里 面,可以参考滴滴出行的描述,否则也会被拒绝。 7. 问题:info.plist 权限配置被拒 iOS 10 之后如果需要调用相机,蓝牙等设备时,需要在 info.plist 文件中进行相应的配置,否则应用会直接崩溃,在 iOS 10 之前则是无法访问。另外,如果在 info.plist 中调用了配置了权限在应用中却没有使用到也是会被拒的。 解决方案: 一定要注意自己的 App 在使用中用到了哪些权限,不要添加无用的权限,也不要缺少必要的权限。 问题:应用提示更新被拒 应用内不能有任何提示更新应用的字样,且应用的更新只能通过 AppStore。因为苹果对于应用的更新有自己的一套策略,所以禁止应用本身提供更新方式,只要应用内出现。 解决方案: 如果不是很必要的话,尽量将应用内涉及到应用更新的部分去掉。如果真的需要使用应用更新,推荐的方法是应用启动的时候获取下应用在 AppStore 上面的版本号,与自己的版本号进行比较,当自己的版本号小于 AppStore 上面的版本号时,提示更新,否则的话不显示更新相关的内容。 问题:夺宝(抽奖)类应用被拒 根据 AppStore 审核准则 20.4 的规定,抽奖卷或抽奖参与权的购买,不论是透过第三方支付渠道或者余额扣款实现,都不能够在 app 内执行。 解决方案: 卓易夺宝 App 上架过程中遇到的问题,最后的解决方法是在审核过程中,所有的支付行为都跳转到 Safari 浏览器上面进行,审核完成后再使用支付宝等 app 平台支付。 问题:隐私条款问题被拒 在未获得用户事先允许,或未告知用户信息将被如何,在哪里使用的情况下,应用不可以传输用户数据。 解决方案: 《网站服务协议》《隐私条款》这些都不要少,注册时候让用户可勾选。另外注明需要的用户信息用来做什么。 问题:未提供测试账号被拒 如果应用中有需要用到账号或者其他资源的(例如:一个二维码)才能使用的一些功能,但未提供给苹果,可能会被拒绝上架。原因是苹果审核人员无法测试这些功能。 解决方案: 提供一个有效的测试帐号以及登录信息,并提供测试功能必要的的硬件和资源(例如,一个测试用的二维码) 问题:未通过 HTTPS 访问被拒 App Transport Security(ATS) 是 Apple 为增强 iOS App 网络通信安全提出的安全功能,适用于 iOS App 和 App Extension;在启用 ATS 之后,它会强制应用通过 HTTPS(而不是 HTTP )连接网络服务。 WWDC 2016上提出,2016年底或2017年初,具体时间未定。App Store 上架审核加强对 ATS 配置的 review,即强制应用必须通过 HTTPS 连接网络服务,而不是随手将 NSAllowsArbitraryLoads 置为 YES,否则审核不予通过。 解决方案: ATS 的提出,是为了在系统层面保障 iOS APP 网络通信的安全;Apple 只所以加强对 ATS 配置的审核,是为了防止开发者们遇到ATS相关的场景时,只是简单地将 ATS完全关闭(只要没有强制性措施,开发者会这么做);在此基础上,App 审核同样会遵循原则:App Review will require "reasonable justification" for most ATS exceptions。 Apple 官方给出的可以通过审核的声明 demo 如下: 必须使用第三方提供的服务,但是其没有支持 HTTPS; 必须通过域名连接到设备,但该设备不能支持安全连接; 必须展示不同来源的网页内容,但是不能基于 NSAllowsArbitraryLoadsInWebContent 支持的类(UIWebView / WKWebView)实现; 载入加密的媒体资源并且其中不涉及个人信息。 由于 Apple 官方并没有给出 ATS 审核的完整说明,ATS 审核时什么才是合适合理的声明也没有明确的客观定义,以上 demo 描述仅能作为参照。 参考文章: http://www.jianshu.com/p/b1b77d804254 https://github.com/wg689/Solve-App-Store-Review-Problem 22人点赞 iOS 作者:Jon1993 链接:https://www.jianshu.com/p/a992c88087a5 来源:简书
一只刺猬 2020-03-27 10:03:40 0 浏览量 回答数 0

问题

厉华:写一个开源容器引擎会是什么样的体验? 热:报错

2013年,Docker.Inc 开源了一款应用容器引擎 Docker。开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到相同内核的任何 Linux 机器上部署运行。这种集装箱式的应用开发和部署方...
kun坤 2020-06-10 10:01:12 3 浏览量 回答数 1

回答

回 2楼(eason_zhang) 的帖子 您好, 例子中的第7个步骤,是测试目标的IPv6网址是否可用的啊。 ------------------------- 回 3楼(eason_lin) 的帖子 您好, 您需要检查一下tomcat是否在IPv6的端口里监听喔(例子中的第6个步骤)。 ------------------------- 回 8楼(eason_zhang) 的帖子 您好, 是能ping通Ipv6地址,但web不能访问。 建议您检查web服务是否在ipv6的网络端口里使用。 ------------------------- 回 10楼(eason_zhang) 的帖子 您好, 如果您的苹果APP资源是由tomcat的,那是需要tomcat支持Ipv6访问啊。 ------------------------- 回 11楼(eason_zhang) 的帖子 您好, 根据图中的信息,80端口仅在ipv4里监听,并不包括ipv6。 ------------------------- 回 14楼(eason_zhang) 的帖子 您好, 现在测试,是成功了的,恭喜您喔。 root@los:~# wget -6 http://smmj.smmjyl.com converted 'http://smmj.smmjyl.com' (ANSI_X3.4-1968) -> 'http://smmj.smmjyl.com' (UTF-8) --2016-11-10 22:23:36--   http://smmj.smmjyl.com/ Resolving smmj.smmjyl.com (smmj.smmjyl.com)... 2001:470:18:172::2 Connecting to smmj.smmjyl.com (smmj.smmjyl.com)|2001:470:18:172::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.1' ------------------------- 回 17楼(ap6554s5w) 的帖子 您好, 抱歉延时回复。 图中显示的,是IPv6 Web Server拒绝连接,可以尝试排除以下因素: a. 是否成功在系统里设置了IPv6隧道地址 b. Web服务是否在IPv6地址里监听 ------------------------- 回 19楼(ap6554s5w) 的帖子 您好, 好象不行呢。 root@los:~# ping6 2001:470:18:16d::2 PING 2001:470:18:16d::2(2001:470:18:16d::2) 56 data bytes From 2001:470:0:ba::2 icmp_seq=1 Destination unreachable: Address unreachable From 2001:470:0:ba::2 icmp_seq=2 Destination unreachable: Address unreachable From 2001:470:0:ba::2 icmp_seq=3 Destination unreachable: Address unreachable From 2001:470:0:ba::2 icmp_seq=4 Destination unreachable: Address unreachable From 2001:470:0:ba::2 icmp_seq=5 Destination unreachable: Address unreachable ------------------------- 回 21楼(ap6554s5w) 的帖子 您好, 可以ping通ipv6地址,但ipv6 80端口无法访问。 root@los:~# curl [2001:470:18:16d::2] curl: (7) Failed to connect to 2001:470:18:16d::2 port 80: Connection refused root@los:~# ping6 2001:470:18:16d::2 PING 2001:470:18:16d::2(2001:470:18:16d::2) 56 data bytes 64 bytes from 2001:470:18:16d::2: icmp_seq=1 ttl=56 time=560 ms 64 bytes from 2001:470:18:16d::2: icmp_seq=2 ttl=56 time=565 ms ------------------------- 回 23楼(ap6554s5w) 的帖子 您好, 应该是的,恭喜您。 ------------------------- 回 26楼(东哥来了) 的帖子 您好, 抱歉延时回复。 请问您有按帖子里的操作顺序操作吗?如第2步里的将禁用的模块设置去掉。 ------------------------- 回 28楼(airzhangfish) 的帖子 您好, 欢迎来到阿里云论坛。 抱歉给您带来困惑, 请问您的IPv6隧道地址是:2001:470:c:d53::2 吗? ------------------------- 回 30楼(airzhangfish) 的帖子 您好, 感谢您的更新回复喔,这可以为其他云友提供参考。 ------------------------- 回 32楼(fswing) 的帖子 您好, 第五步里的命令是Linux系统有的,不需借助其它网站,tunnelbroker.net 提供这些命令,是方便用户操作。 ------------------------- 回 35楼(fswing) 的帖子 您好, 或许例子中,您ping测试时,目标主机地址不应该带http, 或许如这样的: ping6 ipv6.google.com ------------------------- 回 40楼(fswing) 的帖子 您好, 或许具体到您的情况,第五步中其中的一条命令,应该是: ifconfig sit1 inet6 add 216:3eff:fe02:8609/64 而不是:ifconfig sit1 inet6 add fe80::216:3eff:fe02:8609/64 ------------------------- 回 42楼(fswing) 的帖子 您好, 看起来, 216:3eff:fe02:8609 不是一个有效的IPv6地址,能截图看一下HE分配给您IPv6隧道地址的页面内容吗? nginx不是必须的,例子中仅是用于测试web访问而已。 ------------------------- 回 44楼(fswing) 的帖子 您好, 就是在您申请IPv6地址的那个网站的配置信息里,会有显示分配给您的IPv6隧道地址是什么的喔,如下图: ------------------------- 回 46楼(fswing) 的帖子 您好, 从截图上的测试信息来看,您的ipv6隧道地址应该是配置成功了喔。 恭喜。 ------------------------- 回 48楼(eason_zhang) 的帖子 您好, 您的IPv6地址,好象可以ping通,但网页的80端口访问不了喔: root@los:~# ping6 srmj.mhhdkj.com PING srmj.mhhdkj.com(Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=1 ttl=57 time=1131 ms 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=56 time=516 ms 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=3 ttl=56 time=516 ms 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=4 ttl=56 time=516 ms 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=5 ttl=56 time=522 ms 64 bytes from Easonzhanglin-3-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=6 ttl=56 time=516 ms --- srmj.mhhdkj.com ping statistics --- 7 packets transmitted, 6 received, 14% packet loss, time 6005ms rtt min/avg/max/mdev = 516.354/620.077/1131.474/228.713 ms, pipe 2 root@los:~# curl -6 'http://srmj.mhhdkj.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' root@los:~# curl -6 'http://srmj.mhhdkj.com' curl: (7) Failed to connect to srmj.mhhdkj.com port 80: Permission denied ------------------------- 回 51楼(eason_zhang) 的帖子 您好, 如上边测试提到的,Permission denied, 这是否是您的Web服务或防火墙设置不正确呢?因为现在在浏览器里访问 http://14.29.47.23/ 也是显示不出来页面内容。 ------------------------- 回 53楼(eason_zhang) 的帖子 您好, 您自己能正常访问您的Web站点内容吗? 或许您需要联系一下您的服务器管理员,这样处理起来,较顺手些: liujia@hk2:~/test4$ wget http://14.29.47.23/ --2017-01-03 10:22:38--   http://14.29.47.23/ Connecting to 14.29.47.23:80... connected. HTTP request sent, awaiting response... No data received. Retrying. --2017-01-03 10:22:39--  (try: 2)   http://14.29.47.23/ Connecting to 14.29.47.23:80... connected. HTTP request sent, awaiting response... No data received. Retrying. ------------------------- 回 56楼(ap6554s5w) 的帖子 您好, CentOS 5 的,我没有测试过喔, 但如果您要求,等有测试机时,为您测试一下喔。 ------------------------- 回 58楼(song8528) 的帖子 您好, 第五步是设置隧道地址的,执行后影响的是当前的系统状态, 简单的方法是,重启一下系统,那系统会恢复到之前的状态(清除了IPv6的地址设置),您可以重新执行第五步。 ------------------------- 回 60楼(song8528) 的帖子 您好, 测试提示您的站点能被访问,那说明当时的设置是有效的。 有其它用户反馈的现象是,有可能因为IPv6隧道地址的服务(HE)不稳定,出现有时不可以访问的结果。如果是这个原因,您可以尝试更换到另一个隧道节点(如将香港的转到美国的)。请别灰心喔。 ------------------------- 回 62楼(song8528) 的帖子 您好, 一般几个小时后可以出审核的结果呢? ------------------------- Re:回 56楼(ap6554s5w) 的帖子 您好, 我在CentOS 5上测试,可以正常添加iPv6隧道地址喔, 有可能是您没有成功为系统启用IPv6的地址: [root@iZ23jyp275rZ ~]# ifconfig sit0 up [root@iZ23jyp275rZ ~]# ifconfig sit0 inet6 tunnel ::216.218.221.6 [root@iZ23jyp275rZ ~]# ifconfig sit1 up [root@iZ23jyp275rZ ~]# ifconfig sit1 inet6 add 2001:470:18:401::2/64 [root@iZ23jyp275rZ ~]# route -A inet6 add ::/0 dev sit1 [root@iZ23jyp275rZ ~]# ping6 ipv6.anqun.org PING ipv6.anqun.org(liujia2-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from liujia2-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=0 ttl=64 time=0.038 ms 64 bytes from liujia2-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=1 ttl=64 time=0.042 ms --- ipv6.anqun.org ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.038/0.040/0.042/0.002 ms, pipe 2 [root@iZ23jyp275rZ ~]# cat /etc/redhat-release CentOS release 5.11 (Final) ------------------------- 回 56楼(ap6554s5w) 的帖子 您好, 为您写了这个例子,希望对您有用:《为阿里云ECS(CentOS 5)配置IPv6隧道地址》 - https://bbs.aliyun.com/read/304532.html ------------------------- 回 66楼(jidi) 的帖子 您好, 欢迎来到阿里云论坛, 请您在ECS本机,能ping6通自己的域名地址吗?如执行: ping6 api2.imptrip.com ------------------------- 回 68楼(jidi) 的帖子 您好, 那 ping6 ipv6.google.com 呢? ------------------------- 回 70楼(jidi) 的帖子 您好, 如果您无法ping6通外网的ipv6地址,有可能您的ipv6路由设置不正确喔: PING ipv6.google.com(hkg12s02-in-x0e.1e100.net) 56 data bytes 64 bytes from hkg12s02-in-x0e.1e100.net: icmp_seq=1 ttl=55 time=146 ms 64 bytes from hkg12s02-in-x0e.1e100.net: icmp_seq=2 ttl=55 time=146 ms ------------------------- 回 72楼(jidi) 的帖子 您好, 在第五步中的多个命令中,其中 route -A inet6 add ::/0 dev sit1 应该是的为ipv6网络添加默认路由的。 ------------------------- 回 74楼(jidi) 的帖子 您好, SIOCSIFDSTADDR: No buffer space available 如果您之前已经运行过类似的命令,建议您重启系统后,再执行。 ------------------------- 回 76楼(jidi) 的帖子 您好, 很高兴听到您已经解决了问题,同时祝您新春大吉。 ------------------------- 回 78楼(al2587946397) 的帖子 您好, 欢迎来到阿里云论坛,祝你新春大吉大利, 如果有绝色的勾号,那说明检测通过了。 至于显示“cannot identify web server”,可能是检测的程序没有识别的您的Web服务程序类别(如常见的nginx,apache,iis等)。但并不影响您的站点ipv6访问。 ------------------------- 回 81楼(al2587946397) 的帖子 您好, 与是否识别到web服务程序类型好象无关, 现在我测试您的ipv6站点,返回来的是连接重置错误喔。或许您需要重点检查一下web服务的运行状态。 root@los:~/test# curl -6 zhibo.law7net.com/zhiboapp curl: (56) Recv failure: Connection reset by peer ------------------------- 回 83楼(al2587946397) 的帖子 您好, 现在好象我加不加/,都不能成功访问到内容呢。 root@los:~# ping6 ipv6.google.com PING ipv6.google.com(tk-in-x66.1e100.net) 56 data bytes 64 bytes from tk-in-x66.1e100.net: icmp_seq=1 ttl=46 time=144 ms 64 bytes from tk-in-x66.1e100.net: icmp_seq=2 ttl=46 time=145 ms --- ipv6.google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 144.712/144.887/145.062/0.175 ms root@los:~# curl -6 zhibo.law7net.com/zhiboapp/ root@los:~# curl -6 zhibo.law7net.com/zhiboapp ------------------------- 回 85楼(zw0472) 的帖子 您好, 从 ipv6 validation 的测试结果来看,您的ipv6隧道地址配置是正确的, 我在我的测试机里测试您的站点网址,看起来,也正常: 您可以尝试多向苹果提交几次,或换一个中转的IPv6隧道服务器地址后,再提交,因为有的用户反馈有时可能因为隧道服务器地址不稳定而导致苹果审核时失败。 root@los:~/test# wget https://yishanggou.net/ converted 'https://yishanggou.net/' (ANSI_X3.4-1968) -> 'https://yishanggou.net/' (UTF-8) --2017-02-12 23:09:38--   https://yishanggou.net/ Resolving yishanggou.net (yishanggou.net)... 2001:470:35:3eb::2 Connecting to yishanggou.net (yishanggou.net)|2001:470:35:3eb::2|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: user.php [following] converted 'https://yishanggou.net/user.php' (ANSI_X3.4-1968) -> 'https://yishanggou.net/user.php' (UTF-8) --2017-02-12 23:09:47--   https://yishanggou.net/user.php Reusing existing connection to [yishanggou.net]:443. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.2' ------------------------- 回 89楼(六灵私家) 的帖子 您好, 看截图中的“IPv6 web server”是绿色打勾的,应该ipv6隧道地址配置成功了喔。 ------------------------- 回 91楼(六灵私家) 的帖子 您好, 或许您需要添加A(IPv4)和AAAA(IPv6)记录。 请参考: 1. https://help.aliyun.com/knowledge_detail/39787.html 2. https://help.aliyun.com/knowledge_detail/39813.html ------------------------- 回 93楼(nodejs小白) 的帖子 您好, 欢迎来到阿里云论坛。 从您的截图来看,可能是外网无法访问到您的80端口(可能需要检查一下防火墙的设置或ECS实例的安全组规则)。 您在本地能打开ipv6的网址吗? ot@los:~/test5# curl -6 http://[2001:470:35:bf7::1] curl: (7) Failed to connect to 2001:470:35:bf7::1 port 80: Connection refused ------------------------- 回 95楼(nodejs小白) 的帖子 您好, 那您在本地测试,能正常显示网页的内容吗? 如 curl -6 http://[2001:470:35:bf7::1] 或: curl -6 http://[::1] ------------------------- 回 97楼(nodejs小白) 的帖子 您好, 好象 curl 的命令测试不成功,提示有错误。您可以尝试修改一下,目的是想测试本地的 ipv6 网址是否能访问到。 ------------------------- 回 99楼(nodejs小白) 的帖子 您好, 如在我的测试机里运行的结果如下: root@los:~/test5# curl -6 -i http://[::1] HTTP/1.1 200 OK Server: nginx/1.6.2 Date: Mon, 20 Mar 2017 04:52:58 GMT Content-Type: text/html Content-Length: 867 Last-Modified: Sat, 06 Feb 2016 14:51:03 GMT Connection: keep-alive ETag: "56b60857-363" Accept-Ranges: bytes <!DOCTYPE html> <html> <head> <title>Welcome to nginx on Debian!</title> <style>     body { ------------------------- 回 100楼(nodejs小白) 的帖子 您好, 看您的 netstat 命令,nginx 是已经在 ::80 端口上监听了。 我的 netstat 命令输出结果如下: tcp6       0      0 :::80                   :::*                    LISTEN      off (0.00/0/0) ------------------------- 回 103楼(nodejs小白) 的帖子 您好, 可对比例子多测试几次, 如果多次测试后,还不行,可通过站内信提供临时的登录信息,我为您登录查看喔。 ------------------------- 回 105楼(jianxun123) 的帖子 您好, 抱歉延时回复, 现在测试,好象web可以通过ipv6隧道地址访问喔。 root@los:~/test5# wget -i -6 http://www.chinahjz.cn converted 'http://www.chinahjz.cn' (ANSI_X3.4-1968) -> 'http://www.chinahjz.cn' (UTF-8) --2017-03-21 19:34:34--   http://www.chinahjz.cn/ Resolving www.chinahjz.cn (www.chinahjz.cn)... 2001:470:35:c08::2, 112.74.131.2 Connecting to www.chinahjz.cn (www.chinahjz.cn)|2001:470:35:c08::2|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: /shenzhen [following] converted 'http://www.chinahjz.cn/shenzhen' (ANSI_X3.4-1968) -> 'http://www.chinahjz.cn/shenzhen' (UTF-8) --2017-03-21 19:34:36--   http://www.chinahjz.cn/shenzhen Reusing existing connection to [ www.chinahjz.cn]:80. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.1' ------------------------- 回 103楼(nodejs小白) 的帖子 您好, 经测试,好象您在解析域名到IPv6隧道地址时,是写错了, 正确的地址应该是 2001:470:35:bf7::2,而不是: 2001:470:35:bf7::1 root@los:~/test5# curl -6 -i http://[2001:470:35:bf7::2] HTTP/1.1 200 OK Content-Type: text/plain Date: Wed, 22 Mar 2017 00:02:20 GMT Connection: keep-alive Transfer-Encoding: chunked ------------------------- 回 108楼(噜噜噜噜) 的帖子 您好, 欢迎来到阿里云论坛。 请问您是 ping6 哪个地址呢? ------------------------- 回 110楼(噜噜噜噜) 的帖子 您好, 请问您的ECS实例网络类型是什么呢?是专有网络吗? ------------------------- 回 112楼(nodejs小白) 的帖子 您好, 如果您仅是为了通过苹果手机的APP审核,那第三项的测试可暂不理会。 ------------------------- 回 114楼(白鹿洞) 的帖子 您好, 现在从我的测试机里,好象能ping6通您的ipv6隧道地址喔。 root@los:~# ping6 2001:470:1f04:aaa::2 PING 2001:470:1f04:aaa::2(2001:470:1f04:aaa::2) 56 data bytes 64 bytes from 2001:470:1f04:aaa::2: icmp_seq=1 ttl=55 time=282 ms 64 bytes from 2001:470:1f04:aaa::2: icmp_seq=2 ttl=55 time=282 ms 64 bytes from 2001:470:1f04:aaa::2: icmp_seq=3 ttl=55 time=283 ms ------------------------- 回 116楼(超级猪包) 的帖子 您好, 提示 No route to host ,您是否已经成功执行  route -A inet6 add ::/0 dev sit1 的命令了呢。 一般AAAA记录是 Client IPv6 Address,即 您的 2001:470:c:100a::2 。 ------------------------- 回 119楼(超级猪包) 的帖子 您好, 提示 No route to host 喔。 root@los:~/test5# curl -6 https://itf.fox008.com curl: (7) Failed to connect to itf.fox008.com port 443: No route to host ------------------------- 回 121楼(zjlzbin) 的帖子 您好, 抱歉给您带来不便。 是的,目前已知的,“专有网络”不能使用HE提供的IPv6隧道地址(网上查资料,知HE提供的IPv6隧道地址是属于6in4,无法在“专有网络”中的SNAT使用)。 不能在帖子里上传图片的原因,有可能是因为论坛附件上传可能对某些线路的某些浏览器不兼容(如我用广东电信的宽带,在Firefox里不能成功上传附件)。 ------------------------- 回 123楼(adsfdf) 的帖子 您好, 欢迎来到阿里云论坛。 如果您向苹果提交的审核地址是域名URL的,是需要为域名创建AAAA记录喔。 ------------------------- 回 125楼(fswing) 的帖子 您好, 原因可能是IPv6隧道服务器(图中的216.218.221.6)不稳定,或许您可以考虑一下换一个IPv6隧道服务器的地址,如换成美国境内的来试试。 ------------------------- 回 127楼(hbgzliyan) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的ECS云服务器的网络类型是“经典网络”吗? ------------------------- Re:回 130楼(hbgzliyan) 的帖子 您好, 现在测试,是可以访问: --2017-04-11 00:41:16-- http://m.xiaozhubanjia.com/ Resolving m.xiaozhubanjia.com (m.xiaozhubanjia.com)... 2001:470:23:1101::2 Connecting to m.xiaozhubanjia.com (m.xiaozhubanjia.com)|2001:470:23:1101::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 449 [text/html] Saving to: 'index.html.9' 您可以尝试更换其它的IPv6服务器地址,假如您当前选择的是香港的,可以选择一下其它的,如美国的。 ------------------------- 回 132楼(uatcre) 的帖子 您好, 抱歉延时回复, 已经通过站内信,发检测的结果给您喔。 ------------------------- 回 134楼(山东周杰伦) 的帖子 您好, 现在测试,好象可以访问到内容喔: --2017-04-19 06:35:46--   http://demo1.foxteam.cc/ Resolving demo1.foxteam.cc (demo1.foxteam.cc)... 2001:470:18:683::2 Connecting to demo1.foxteam.cc (demo1.foxteam.cc)|2001:470:18:683::2|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: ./web/index.php? [following] converted 'http://demo1.foxteam.cc/./web/index.php?' (ANSI_X3.4-1968) -> 'http://demo1.foxteam.cc/./web/index.php?' (UTF-8) --2017-04-19 06:35:49--   http://demo1.foxteam.cc/web/index.php? Reusing existing connection to [demo1.foxteam.cc]:80. HTTP request sent, awaiting response... 302 Moved Temporarily Location: ./index.php?c=user&a=login& [following] converted 'http://demo1.foxteam.cc/web/./index.php?c=user&a=login&' (ANSI_X3.4-1968) -> 'http://demo1.foxteam.cc/web/./index.php?c=user&a=login&' (UTF-8) --2017-04-19 06:35:51--   http://demo1.foxteam.cc/web/index.php?c=user&a=login& Reusing existing connection to [demo1.foxteam.cc]:80. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.17' ------------------------- 回 136楼(ywwj) 的帖子 您好, 请问您的金融云ECS,网络类型是“专有网络”的吗? ------------------------- 回 137楼(xd1412) 的帖子 您好, 好象现在没有返回AAAA地址了, dig +nocmd +nostats app.nzhousechina.com AAAA ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2896 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 8192 ;; QUESTION SECTION: ;app.nzhousechina.com.          IN      AAAA ;; AUTHORITY SECTION: nzhousechina.com.       28800   IN      SOA     ns.freeparking.co.nz. hostmaster.freeparking.co.nz. 2017042615 86400 7200 3600000 28800 ------------------------- 回 140楼(daiwdddd) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的ECS实例“网络类型”是哪种,是“专有网络”吗? ------------------------- 回 140楼(daiwdddd) 的帖子 您好, 抱歉延时回复。 现在测试,您的ipv6隧道地址还是ping不通, PING 2001:470:18:886::2(2001:470:18:886::2) 56 data bytes --- 2001:470:18:886::2 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 4999ms ------------------------- 回 142楼(gt888) 的帖子 您好, 因为负载均衡的IP管理权限不在您这里,所以可能无法设置ipv6隧道地址喔。 但您可以尝试用其它方法来尝试,如其他网友提到过的,用国外的 ipv6 proxy 来转发,或用国外的 ipv6 CDN 来分发。 ------------------------- 回 146楼(aquare) 的帖子 您好, 从国外的测试机来访问测试,http是不成功。 建议您检查一下系统的防火墙,看是否有阻止外网访问。 converted 'http://ipv6.51cs8.com' (ANSI_X3.4-1968) -> 'http://ipv6.51cs8.com' (UTF-8) --2017-05-15 16:06:55--   http://ipv6.51cs8.com/ Resolving ipv6.51cs8.com (ipv6.51cs8.com)... 2001:470:18:fe::2 Connecting to ipv6.51cs8.com (ipv6.51cs8.com)|2001:470:18:fe::2|:80... failed: Connection timed out. Retrying. --2017-05-15 16:08:00--  (try: 2)   http://ipv6.51cs8.com/ Connecting to ipv6.51cs8.com (ipv6.51cs8.com)|2001:470:18:fe::2|:80... ------------------------- 回 148楼(chisj) 的帖子 您好, 可能对于ipv6的防火墙服务,是 ip6tables 。 ------------------------- 回 149楼(chisj) 的帖子 您好, 嗯,可以再细心检查,检查。 现在您的ipv6隧道地址好象ping不通了, PING 2001:470:18:fe::2(2001:470:18:fe::2) 56 data bytes --- 2001:470:18:fe::2 ping statistics --- 47 packets transmitted, 0 received, 100% packet loss, time 46031ms ------------------------- 回 154楼(chisj) 的帖子 您好, 现在我从国外的测试机测试,无法ping通您的ipv6隧道地址喔。 在Linux系统里,有时ipv6隧道地址会在约30分钟后掉(ping不通),建议您可以用ping命令一直保持着,让ipv6隧道地址不掉。 ------------------------- 回 156楼(chisj) 的帖子 您好, 是的,在服务器里ping一个ipv6地址,如ipv6.google.com是可以的。 ------------------------- 回 157楼(chisj) 的帖子 您好, 是的,可以。但您的Shell会话退出后,可能这个ping进程也会退出,不能继续ping了喔。可以尝试结合使用 nohup 的命令。 ------------------------- 回 158楼(chisj) 的帖子 您好, 现在测试,可以ping得通喔: PING 2001:470:18:fe::2(2001:470:18:fe::2) 56 data bytes 64 bytes from 2001:470:18:fe::2: icmp_seq=1 ttl=57 time=620 ms 64 bytes from 2001:470:18:fe::2: icmp_seq=2 ttl=57 time=601 ms 64 bytes from 2001:470:18:fe::2: icmp_seq=3 ttl=57 time=595 ms ------------------------- 回 159楼(chisj) 的帖子 您好, 您指的是用 Mac + iPhone 搭建的 NAT64/DNS64 环境,无法ping通 ipv6.51cs8.com 吗? 请问是ping域名返回不到IP地址,还是路由不到目标地址呢? ------------------------- 回 165楼(chisj) 的帖子 您好, 从dig的信息来看,是能查询到域名的ipv6地址, 但在Mac里,ping命令是默认可以ping通ipv4或ipv6地址吗?在Linux中,需要ping6的命令来ping通ipv6地址的喔。 ------------------------- 回 169楼(chisj) 的帖子 您好, 抱歉您的APP这次还是不能通过审核, 苹果的回复里提到,是尝试登录到APP时,弹出了错误信息(we received an error message when we attempted to log in the app), 具体的错误信息是什么呢?苹果还提供了截图,能否也贴上截图? ------------------------- 回 171楼(cxck) 的帖子 您好, 欢迎来到阿里云论坛。 当您填写的网址是https时,或许需要检查系统中的ipv6地址是否在443端口监听使用喔(并不是80端口)。 请运行 netstat -noa | grep 443 的端口试试哩。 ------------------------- 回 173楼(cxck) 的帖子 您好, 在Web里的ssl配置文件里增加上ipv6的网络接口啊。 ------------------------- 回 175楼(cxck) 的帖子 您好, 现在好象ping6不通您的ipv6隧道地址喔: root@los:~# ping6 www.cxckquhuan.com PING www.cxckquhuan.com(Cxckquahuan-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes --- www.cxckquhuan.com ping statistics --- 8 packets transmitted, 0 received, 100% packet loss, time 6999ms ------------------------- 回 178楼(cxb0dly0zz) 的帖子 您好, 欢迎来到阿里云论坛。 能否看一下您的当前路由表呢?如运行 route -6 的命令,看看输出结果。 ------------------------- 回 180楼(cxb0dly0zz1) 的帖子 您好, 您指的两台机子互相ping6 ipv6的地址,不能通吗? 那这两台机子,能ping6通外网的,如 ipv6.google.com 的地址吗? ------------------------- 回 182楼(cxb0dly0zz1) 的帖子 您好, 是的,有可能是因为其中一台的ipv6默认路由不生效哩。 ------------------------- 回 184楼(等火车) 的帖子 您好, 在另一个帖子里看到您说已经解决了喔: https://bbs.aliyun.com/read/299254.html?displayMode=1&page=13#881075 ------------------------- 回 186楼(等火车) 的帖子 您好, 请问能否查看一下当前的ipv6路由表呢? ------------------------- 回 189楼(法克金嗯嗯) 的帖子 您好, 欢迎来到阿里云论坛。 现在从我这里测试,好象返回的是403禁止访问的错误提示喔: converted 'http://[2001:470:c:176::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:c:176::2]' (UTF-8) --2017-06-02 14:40:25--  http://[2001:470:c:176::2]/ Connecting to [2001:470:c:176::2]:80... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-06-02 14:40:25 ERROR 403: Forbidden. ------------------------- 回 191楼(法克金嗯嗯) 的帖子 您好, 很高兴听到您已经解决问题了喔。 ------------------------- 回 193楼(nhwuxiaojun) 的帖子 您好, 欢迎来到阿里云论坛。 我没有使用过金融云里的ECS产品, 不过,之前有用户曾反馈过类似的现象, 或许金融云默认的安全规则会比普通的ECS产品严格些,所以需要额外调整一下, 您可以多次尝试,或请官方的客服协助您一下喔: https://workorder.console.aliyun.com/ ------------------------- 回 195楼(dialect) 的帖子 您好, 欢迎来到阿里云论坛。 从外网测试您的ipv6隧道地址,是正常的(返回404): --2017-06-21 09:41:17--  http://[2001:470:c:393::2]/ Connecting to [2001:470:c:393::2]:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-06-21 09:41:18 ERROR 404: Not Found. 被拒的原因,有可能是APP软件本身不支持ipv6环境。 请问您的APP是如何构建的呢? ------------------------- 回 197楼(dialect) 的帖子 您好, 现在我从外网测试的话,是可以访问的喔: --2017-06-21 14:25:53--   https://api.oudalady.com/ Resolving api.oudalady.com (api.oudalady.com)... 2001:470:c:393::2 Connecting to api.oudalady.com (api.oudalady.com)|2001:470:c:393::2|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2017-06-21 14:25:54 ERROR 404: Not Found. ------------------------- 回 200楼(fliu) 的帖子 您好, 欢迎来到阿里云论坛。 现在我测试,您的隧道地址ping6不通喔。 PING 2001:470:c:5ca::2(2001:470:c:5ca::2) 56 data bytes --- 2001:470:c:5ca::2 ping statistics --- 10 packets transmitted, 0 received, 100% packet loss, time 9007ms ------------------------- 回 202楼(fliu) 的帖子 您好, 请问还是之前的这个ipv6隧道地址吗? 如果是,现在我还是ping6不通喔: PING 2001:470:c:5ca::2(2001:470:c:5ca::2) 56 data bytes --- 2001:470:c:5ca::2 ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 3998ms ------------------------- 回 204楼(fliu) 的帖子 您好, 请问现在在系统里,能ping6通ipv6.google.com或其它ipv6地址吗? ------------------------- 回 206楼(fliu) 的帖子 您好, 那就奇怪了。 能否运行 ifconfig 和 ping6 ipv6.google.com 的截图看看呢? ------------------------- 回 208楼(fliu) 的帖子 您好, 能否检查一下您的系统里,是否有启用防火墙,或ECS的安全组是否有过滤的规则? ------------------------- 回 210楼(法克金嗯嗯) 的帖子 您好, 暂时我没有遇到类似的现象, 能否提供您在电脑里测试ping不通的截图,大家一起看看? ------------------------- 回 212楼(法克金嗯嗯) 的帖子 您好, 是喔,需要先确认ipv6域名解析有效喔。 ------------------------- 回 214楼(我的天啊666) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,可以正常连接到80端口喔。 --2017-08-05 10:18:02--   http://app6.51dtwl.com/ Resolving app6.51dtwl.com (app6.51dtwl.com)... 2001:470:18:3aa::2 Connecting to app6.51dtwl.com (app6.51dtwl.com)|2001:470:18:3aa::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.2’ ------------------------- 回 216楼(我的天啊666) 的帖子 您好, 现在为您测试,好象成功的啊。 ------------------------- 回 219楼(yingegou) 的帖子 您好, 现在我从外网ping6不通您的隧道地址喔。 如果可以的话,您可以尝试在安全组规则里临时放行所有的协议和端口,对比测试一下。 ------------------------- 回 222楼(babos) 的帖子 您好, 很高兴听到您已经解决了问题,欢迎有空时,多来论坛逛逛。 ------------------------- 回 223楼(咯咯嘿嘿) 的帖子 您好, 欢迎来到阿里云论坛。 可以尝试用 nohup 的命令,把ping6命令放到后台长驻运行。 ------------------------- 回 227楼(cheyuu) 的帖子 您好, 欢迎来到阿里云论坛。 较“粗野”的方法是:重启系统。 ------------------------- 回 229楼(cheyuu) 的帖子 您好, 现在我也是能ping6通您的隧道地址的,如果苹果苹果还是卡在ipv6这里,建议先检查APP的ipv6兼容性(可在本地模拟网络测试)。 PING 2001:470:c:12a3::2(2001:470:c:12a3::2) 56 data bytes 64 bytes from 2001:470:c:12a3::2: icmp_seq=1 ttl=59 time=325 ms 64 bytes from 2001:470:c:12a3::2: icmp_seq=2 ttl=59 time=331 ms 64 bytes from 2001:470:c:12a3::2: icmp_seq=3 ttl=59 time=321 ms 64 bytes from 2001:470:c:12a3::2: icmp_seq=4 ttl=59 time=312 ms ------------------------- 回 231楼(cheyuu) 的帖子 您好, 有的情况是,ipv6隧道地址在约20~30分钟内无数据交互,可能会“掉”(ping6不通)的, 您可以先排除这个现象。 ------------------------- 回 236楼(独凭栏) 的帖子 您好, 如果您不是将绑定隧道地址的命令设置成为开机自动运行, 那重启系统后,隧道地址可能会掉的喔, 您能在当前系统上查看到隧道地址的配置信息吗? ------------------------- 回 238楼(独凭栏) 的帖子 您好, 请问您之前是用哪些命令来配置ipv6隧道地址的呢? ------------------------- 回 242楼(独凭栏) 的帖子 您好, 可以尝试调整实例的安全组规则, 如放行全部的协议后,再对比试试。 ------------------------- 回 244楼(独凭栏) 的帖子 您好, 测试本地的ipv6地址,是什么结果呢? 如 ping6 ::1 ping6 www.100rd.com ------------------------- 回 246楼(独凭栏) 的帖子 您好, 好象您的隧道地址有时能ping6通,有时不能。 建议后台长驻运行一条ping6命令看看,如 nohup ping6 ipv6.google.com ------------------------- 回 246楼(独凭栏) 的帖子 您好, 现在从外网测试,您的隧道地址网站能访问了, liujia@hk2:~$ wget -6   www.100rd.com --2017-10-17 17:18:11--   http://www.100rd.com/ Resolving www.100rd.com (www.100rd.com)... 2001:470:1f06:327::2 Connecting to www.100rd.com (www.100rd.com)|2001:470:1f06:327::2|:80... connected. HTTP request sent, awaiting response... 302 Found Location: /index.html [following] --2017-10-17 17:18:13--   http://www.100rd.com/index.html Reusing existing connection to [ www.100rd.com]:80. HTTP request sent, awaiting response... 200 OK Length: 45552 (44K) [text/html] Saving to: ‘index.html.6’ ------------------------- 回 249楼(魔笛手) 的帖子 您好, 请问您的ECS实例网络类型是“专有网络”的吗? ------------------------- 回 251楼(帅到天涯) 的帖子 版主回复: 或许您可以在实例的安全组规则里,放行所有协议,或对he.net的服务器允许访问。 ------------------------- Re:回 253楼(友链) 的帖子 版主回复: 至少目前我尝试从外网测试,ping6不能您的ipv6隧道地址喔: $ ping6 www.whoju.com PING www.whoju.com(huju-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes --- www.whoju.com ping statistics --- 10 packets transmitted, 0 received, 100% packet loss, time 9072ms ------------------------- Re:回 255楼(友链) 的帖子 版主回复: 好象现在测试,还是不可以喔: $ wget -6 www.whoju.com --2017-11-10 11:23:56--   http://www.whoju.com/ Resolving www.whoju.com (www.whoju.com)... 2001:470:18:c11::2 Connecting to www.whoju.com (www.whoju.com)|2001:470:18:c11::2|:80... failed: Connection timed out. Retrying. ------------------------- 回 257楼(jacky1204) 的帖子 版主回复: 看起来,好象您的命令脚本,1.sh 不是很符合实际的情况。 可以尝试再调整一下,或用he提供的例子命令。 ------------------------- 回 259楼(ap6554s5w) 的帖子 版主回复: 个人较“生硬”的做法是,逐条命令来执行,如有错,再根据具体的错误信息来排查哩。 ------------------------- 回 261楼(真的虾米) 的帖子 版主回复: 是哩。在实践中,先ping6通,才能使用隧道地址,我们管这叫“激活”。 您可以使用nohup等工具,将ping6放到后台或自动运行,可能就可以一直保持“激活”状态了。 ------------------------- 回 263楼(肉松小贝) 的帖子 版主回复: 如果在绑定ipv6隧道地址之前,您的ubuntu系统没有启用ipv6,请先启用ipv6喔,如能ping6通 ::1。 ------------------------- 回 266楼(11提供给个) 的帖子 版主回复: 看起来,您的隧道地址,从外网ping6不通呢: $ ping6 2001:470:1f04:101e::2 PING 2001:470:1f04:101e::2(2001:470:1f04:101e::2) 56 data bytes --- 2001:470:1f04:101e::2 ping statistics --- 58 packets transmitted, 0 received, 100% packet loss, time 57000ms ------------------------- 回 267楼(御峰金服) 的帖子 版主回复: 现在测试,好象您的ipv6隧道地址信息失效了: $ ping6  2001:470:39:693::1 PING 2001:470:39:693::1(2001:470:39:693::1) 56 data bytes From 2001:470:0:24b::2 icmp_seq=1 Destination unreachable: No route From 2001:470:0:24b::2 icmp_seq=2 Destination unreachable: No route From 2001:470:0:24b::2 icmp_seq=3 Destination unreachable: No route From 2001:470:0:24b::2 icmp_seq=4 Destination unreachable: No route ------------------------- 回 288楼(hammondzhw) 的帖子 您好,我没用过NAT网关,但在he官方常见问答里提到重要的两点:可以响应 ICMP 及允许41协议通过。 Two important notes: Your IPv4 endpoint address must be reachable via ICMP ECHO_REQUEST (Internet Control Message Protocol). If you are using a NAT (Network Address Translation) appliance, please make sure it allows and forwards IP protocol 41. ------------------------- 回 290楼(xxjava) 的帖子 您好, 一般情况下,需要删除之前在系统里已经配置的IPv6隧道地址信息,再重新绑。就是不能重复绑定。
dongshan8 2019-12-02 02:43:52 0 浏览量 回答数 0

问题

应用 AXIS 开始 Web 服务之旅:报错

一. 介绍 本文并不是想介绍Web服务的原理、系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念、原理等知识。本文主要是针对那些已经了解Web服 务概念,但是还没有亲身体会Web服务...
kun坤 2020-06-08 11:01:46 3 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板