一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Backend

CentOS7永久关闭防火墙(防火墙的基本使用)

查看防火墙状态: systemctl status firewalld.service 如图 绿的running表示防火墙开启 执行关闭命令: systemctl stop firewalld.service 再次执行查看防火墙命令:systemctl status firewalld.service 如下图所示表示防火墙已经关闭 执行开机禁用防火墙自启命令  : systemctl disable firewalld.service 完成   ============================================================ 关于防火墙的其他命令: 启动:systemctl start firewalld.service 防火墙随系统开启启动  : systemctl enable firewalld.service   from:https://blog.csdn.net/ViJayThresh/article/details/81284007

龙生   19 May 2020
View Details

什么是CI/CD

CI, CD AND CD 当我们在谈论现代的软件编译和发布流程的时候,经常会听到CI 和CD这样的缩写短语。CI很容易理解,就是持续集成。但是CD既可以指代码持续交付,也可理解为代码持续部署。CI和CD之间有很多相似的部分,但是也有很大的区别。这里我们将给大家介绍它们之间的区别和联系。 持续集成(CONTINUOUS INTEGRATION) 在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前 持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。 持续交付(CONTINUOUS DELIVERY) 持续交付就是讲我们的应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。 通过持续交付,您可以决定每天,每周,每两周发布一次,这完全可以根据自己的业务进行设置。 但是,如果您真的希望体验持续交付的优势,就需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除。 持续部署(CONTINUOUS DEPLOYMENT) 如果我们想更加深入一步的话,就是持续部署了。通过这个方式,任何修改通过了所有已有的工作流就会直接和客户见面。没有人为干预(没有一键部署按钮),只有当一个修改在工作流中构建失败才能阻止它部署到产品线。 持续部署是一个很优秀的方式,可以加速与客户的反馈循环,但是会给团队带来压力,因为不再有“发布日”了。开发人员可以专注于构建软件,他们看到他们的修改在他们完成工作后几分钟就上线了。基本上,当开发人员在主分支中合并一个提交时,这个分支将被构建、测试,如果一切顺利,则部署到生产环境中。 合并CI CD and CD? 当然,正如我所说,他们每部分都更加接近生产环境。你可以构建自己的持续集成环境,然后,一旦团队适应,你可以添加持续交付流,最后,可以添加持续部署流到整个工作流中。 举例CI, CD and CD 流水线 到底值不值这样做呢? 持续集成: 你需要具备哪些条件: 你的团队需要为每个新功能,代码改进,或者问题修复创建自动化测试用例。 你需要一个持续集成服务器,它可以监控代码提交情况,对每个新的提交进行自动化测试。 研发团队需要尽可能快的提交代码,至少每天一次提交。 你能获得什么呢?: 通过自动化测试可以提早拿到回归测试的结果,避免将一些问题提交到交付生产中 发布编译将会更加容易,因为合并之初已经将所有问题都规避了 减少工作问题切换,研发可以很快获得构建失败的消息,在开始下一个任务之前就可以很快解决。 测试成本大幅降低-你的CI服务器可以在几秒钟之内运行上百条测试。 你的QA团队花费在测试上面的时间会大幅缩短,将会更加侧重于质量文化的提升上面。 持续交付 需要具备什么条件?: 你需要有强大的持续集成组件和足够多的测试项可以满足你代码的需求 部署需要自动化。触发是手动的,但是部署一旦开始,就不能人为干预。 你的团队可能需要接受特性开关,没有完成的功能模块不会影响到线上产品。 你能收获什么?: 繁琐的部署工作没有了。你的团队不在需要花费几天的时间去准备一个发布。 你可以更快的进行交付,这样就加快了与客户之间的反馈环。 轻松应对小变更,加速迭代 持续部署 需要具备的条件: 研发团队测试理念比较完善。测试单元的健壮性直接决定你的交付质量。 你的文档和部署频率要保持一致。 特征标志成为发布重大变化过程的固有部分,以确保您可以与其他部门(支持,市场营销,公关…)协调。 可以获得什么?: 发布频率更快,因为你不需要停下来等待发布。每一处提交都会自动触发发布流。 在小批量发布的时候,风险降低了,发现问题也可以很轻松的修复。 客户每天都可以看到我们的持续改进和提升,而不是每个月或者每季度,或者每年。 如前所述,您可以采用持续集成,持续交付和持续部署。你怎么做取决于你的需求和你的业务情况。如果你刚刚开始一个项目,并且还没有客户,那么你就可以去创建这些工作流,最好是将这三个方面都实现,并且在你的项目迭代和需求增长中同时迭代它们。如果您已经有一个生产项目,那么您可以一步一步地分阶段去实现他们。   原文链接:http://www.ttlsa.com/news/ci-cd-cd/ from:https://www.cnblogs.com/soymilk2019/p/11445773.html

龙生   19 May 2020
View Details

三步把asp.net core 3.1应用部署到centos7

一、编译发布Asp.net core 应用 直接使用vs2019编译发布后,通过ftp上传到centos的 /www/ 目录下,不再赘述。 二、centos安装asp.net core runtime和nginx 1、安装asp.net core runtime# Copy

  2、安装nginx# 添加源:#

  安装 nginx# Copy

  Nginx常用命令# Copy

  3、使用nginx反向代理# 在 /etc/nginx/ 目录下新建AspnetCoreDemo.conf,内容如下 Copy

  4、重新加载nginx配置#

  三、添加Systemd守护 1、Systemd service内容如下# 路径 /etc/systemd/system/AspnetCoreDemo.service 新建文件

  2、Systemd基本操作命令#

  四、防火墙设置(不需要端口访问,可忽略此步)

  from:https://www.cnblogs.com/wxb8/p/12359521.html

龙生   18 May 2020
View Details

CentOS 下运行.net Core程序

系统: 阿里云的默认 CentOS 7.5 镜像 项目环境:.Net Core 2.2 一、安装.Net Core的运行环境 第一步,如果是一台新的服务器,可以升级一下系统的基础软件。如果没有必要也可以跳过这一步。 执行命令

  第二步,注册Microsoft签名密钥,每个机器只要注册一次就可以 注册命令

执行结果   第三步:安装.Net Core SDK ,这里根据项目环境,需要安装2.2版的。不同的开发环境选择对应的运行时版本即可 执行命令

  完成后,通过命令,可以看出.net core的版本

    第四步:上传一个.Net Core的程序,进入到程序包所在目录 执行命令

    到这里,就可以通过服务器IP加上程序设定的端口号(一般默认是5000)进行访问了。如果你的服务器是在云端,有安全防护,需要开启对应的端口访问权限   二、通过 nginx 进行转发 第一步、安装nginx 执行命令

    第二步,修改 nginx 的配置文件 执行命令

修改 location的值,修改的内容如下:

  这个配置的意思是监听80端口,如果有人访问80端口就把请求转到5000端口,这里的5000端口就是你 .Net Core 程序的端口,默认为5000可以更改,如果有更改换掉即可。 第三步、重启 nginx 的服务。启动 .Net Core 的程序

这个时候,我们就可以通过服务器的80端口,访问我们的 .Net Core 程序了。   第四步、配置多个.net core的转发 如果你的服务器的nginx需要转发多个正在运行的 .Net Core 项目,可以通过在nginx的 /etc/nginx/conf.d/ 目录下,为每个项目建立一个转发的规则文件

这里的配置文件目录和文件格式 在 nginx.conf 中有指定。 进入目录后,新建一个文件

 

[…]

龙生   18 May 2020
View Details

Dubbo

一、Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 二、为什么要用Dubbo? 因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。  

  三、Dubbo 和 Spring Cloud 有什么区别?

  不需要,如果硬要用Web 容器,只会增加复杂性,也浪费资源。 五、Dubbo内置了哪几种服务容器?

  Dubbo 的服务容器只是一个简单的 Main 方法,并加载一个简单的 Spring 容器,用于暴露服务。 六、dubbo都支持什么协议,推荐用哪种?

  七、Dubbo里面有哪几种节点角色?

  八、dubbo服务注册与发现的流程图 dubbo服务注册与发现的流程图 九、Dubbo默认使用什么注册中心,还有别的选择吗? 推荐使用zookeeper作为注册中心,还有redis、multicast、simple注册中心。 十、Dubbo 核心的配置有哪些? Dubbo 核心的配置 十一、在 Provider 上可以配置的 Consumer 端的属性有哪些?

  十二、Dubbo有哪几种负载均衡策略,默认是哪种?

  十三、Dubbo启动时如果依赖的服务不可用会怎样? Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,默认 check="true",可以通过 check="false" 关闭检查。 十四、Dubbo推荐使用什么序列化框架,你知道的还有哪些?

  十五、Dubbo默认使用的是什么通信框架,还有别的选择吗?

  十六、Dubbo有哪几种集群容错方案,默认是哪种? Dubbo集群容错方案 十七、服务提供者能实现失效踢出是什么原理?

  十八、Dubbo服务之间的调用是阻塞的吗?

  Dubbo暂时不支持分布式事务。 十九、Dubbo的管理控制台能做什么?

  二十、Dubbo 服务暴露的过程

  二十一、当一个服务接口有多种实现时怎么做? 当一个接口有多种实现时,可以用 group 属性来分组,服务提供方和消费方都指定同一个 group […]

龙生   18 May 2020
View Details

C#中TripleDES对应Java中的DESede即大家说的3DES,附C#及Java加解密结果一致的控制台程序例子

直接上代码了。 Java控制台代码: package Test; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESedeKeySpec; import javax.crypto.spec.IvParameterSpec; import org.apache.commons.codec.binary.Base64; public class Test { private static final String encoding = "UTF-8"; public static void main(String[] args) { try { String text = "20200121";// 明文 String key = "Tt3rLPrDIVIhXqAz";// 长度控制为16,作为3DES加密用的key String encryptStr = EncryptData(text, key);// 3DES加密结果 System.out.println("明文:" + text); System.out.println("密钥:" + key); System.out.println("密文:" + encryptStr); System.out.println("解密:" + DecryptData(encryptStr, key)); } catch (Exception e) { e.printStackTrace(); } } /** * DESede加密,key长度为16 * * @param plainText 明文 * @param key 密钥 * @return DESede加密结果 * […]

龙生   09 May 2020
View Details

webAPI 使用注解非必须参数拦截问题

使用注解可以更方便对参数进行验证,但是也会存在非必须参数如:https://aaa.com?id=1&name=&age=;或https://aaa.com?id=1&name&age的请求。这时ModelState.IsValid过滤器将会拦截请求提示"值是必需的。"或"有一个值是必需的,但请求中不存在该值。"异常。 若接口使用model接收参数,可将值类型参数改为可空类型解决此问题;如:

  若接口不使用model接收参数,暂无没有找到解决方案; 经过调试可以使用一种笨拙的取巧方案解决:在过滤器.ModelState.IsValid==false内部对值的错误内容进行排除  

  from:https://blog.csdn.net/niuc321/article/details/88694793

龙生   09 May 2020
View Details

PHP:cURL error 60: SSL certificate unable to get local issuer certificate

导致该问题的原因在于没有配置curl.cainfo,该配置位于php.ini中。 解决方案: 1)下载cacert.pem https://curl.haxx.se/ca/cacert.pem 2)配置php.ini [curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. curl.cainfo = 【你的绝对路径】 ———————————————— 版权声明:本文为CSDN博主「loophome」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/loophome/java/article/details/83112364

龙生   23 Apr 2020
View Details

asp.net获取IP

 

龙生   23 Apr 2020
View Details

WEBAPI 返回一个html页面

public HttpResponseMessage getHtml() { string uri = "http://docs.google.com/gview?embedded=true&url=www.pdf995.com/samples/pdf.pdf"; WebClient wc = new WebClient(); Stream resStream = wc.OpenRead(uri); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); string ContentHtml = sr.ReadToEnd(); var response = new HttpResponseMessage(); response.Content = new StringContent(ContentHtml); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return response; } ———————————————— 版权声明:本文为CSDN博主「小咪蜂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xiaomifengmaidi1/java/article/details/84665109

龙生   21 Apr 2020
View Details
1 88 89 90 281