版本号

ngin隐藏版本号

被刻印的时光 ゝ 提交于 2020-03-04 18:51:24
Nginx默认是显示版本号的,如: 这样就给人家看到你的服务器nginx版本, 这样暴露出来的版本号就容易变成攻击者可利用的信息。所以,从安全的角度来说,隐藏版本号会相对安全些! 配置如下: 修改nginx.conf配置文件添加: server_tokens off ; #off关闭 其他优化: sendfile on ; tcp_nopush on ;  #有效的提高数据的实时响应性 keepalive _timeout 60 ; #一个http产生的tcp连接在传送完最后一个响应后,还需要hold住 keepalive_timeout秒后,才开始关闭这个连接,再等等吧,看看浏览器还有没有请求过来这一等,便是 keepalive_timeout时间 tcp_nodelay on ; #有效的提高数据的实时响应性 如果有cgi支持的修改php-fpm配置文件,如fastcgi.conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改):(可选修改参数) 找到:   fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 改为:    fastcgi_param SERVER_SOFTWARE nginx;history 然后重新加载nginx 就没有nginx的版本号了,就算是403错误也不显示了。! 来源:

nginx 隐藏版本号

人盡茶涼 提交于 2020-03-04 18:50:08
有时候nginx在某个版本中会存在一些已知的漏洞,如果我们把nginx的版本显露在外面,就会被黑客恶意利用。因此在部署nginx的时候隐藏版本号是非常必要的。具体配置如下: 1. nginx配置文件里nging.conf 增加 server_tokens off配置; http { .... #隐藏版本号 server_tokens off; .... } 2. 如果php配置文件里设置了fastcgi_param SERVER_SOFTWARE,则找到这一行修改一下: 编辑 php-fpm 配置文件,如 fastcgi .conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改): 找到: fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 改为: fastcgi_param SERVER_SOFTWARE nginx; 3. 重新加载配置文件 来源: https://www.cnblogs.com/xiangyangsheng/p/5122227.html

Flutter - 自动引用pub.dartlang.org/packages上最新的packages

主宰稳场 提交于 2020-03-04 02:56:14
一般在 pubspec.yaml 里面引用 pub.dartlang.org/packages 的 packages 时,我们都是在包名称后面加上版本号的,谷歌默认也是这样写的。 cupertino_icons: ^0.1.2 但是随着人家的包不断更新和bug不断修复,我们就需要不时的去查看库的最新版本,并到 pubspec.yaml 里面修改成最新的版本号,这样就给开发造成的很大的麻烦。 那么有没有一种简单的方法,可以自动获取最新的包呢? 答案是肯定的!!! 那就是简单粗暴的把版本号去掉!!! 是不是很吃惊??? 哈哈哈 看下面: flutter_advanced_networkimage: photo_view: flutter_scroll_gallery: 就是这样。 这样每次在编译项目的时候,编译器就会自动下面最新的包了,不必每次麻烦修改版本号。 如果你觉得无所谓,哪一个版本都ok的话,可以用 any 关键字。 photo_view: any 当然,有一种例外情况,你必须得指定版本号。 就是你就想引用那个指定的版本,或者新版本把你需要的feature移除了,或者新版本又添加了很多的bug,导致项目不断的boom(比如Windows 10?)。 那你就要自己手动指定版本号。 **************************************************

git reset和revert(转载)

╄→гoц情女王★ 提交于 2020-03-02 16:21:28
一、问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。 二、背景知识 git的版本管理,及HEAD的理解 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支: 三、解决方法 方法一:git reset 原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一: 适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。 具体操作: 1. 查看版本号: 可以使用命令“git log”查看: 也可以在github网站上查看: 2. 使用“git reset --hard 目标版本号”命令将版本回退: 再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本: 3. 使用“git

Android中数据库升级说明

拜拜、爱过 提交于 2020-03-02 15:33:56
Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决了我一连串的疑问: 1. 帮助文档里说的“数据库升级”是指什么? 你开发了一个程序,当前是1.0版本。该程序用到了数据库。到1.1版本时,你在数据库的某个表中增加了一个字段。那么软件1.0版本用的数据库在软件1.1版本就要被升级了。 2. 数据库升级应该注意什么? 软件的1.0版本升级到1.1版本时,老的数据不能丢。那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库。换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值。 3. 程序如何知道数据库需要升级? SQLiteOpenHelper类的构造函数有一个参数是int version,它的意思就是指数据库版本号。比如在软件1.0版本中,我们使用SQLiteOpenHelper访问数据库时,该参数为1,那么数据库版本号1就会写在我们的数据库中。 到了1.1版本,我们的数据库需要发生变化,那么我们1.1版本的程序中就要使用一个大于1的整数来构造SQLiteOpenHelper类,用于访问新的数据库,比如2。 当我们的1.1新程序读取1.0版本的老数据库时

Spring Cloud 是什么

房东的猫 提交于 2020-03-02 10:33:33
   概念定义      Spring Cloud 是一个服务治理平台,提供了一些服务框架。包含了:服务注册与发现、配置中心、消息中心 、负载均衡、数据监控等等。   Spring Cloud 是一个微服务框架,相比 Dubbo 等 RPC 框架,Spring Cloud 提供了全套的分布式系统解决方案。   Spring Cloud 对微服务基础框架 Netflix 的多个开源组件进行了封装,同时又实现了和云端平台以及 Spring Boot 框架的集成。   Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具,它为开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。   Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,Spring Cloud 就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,Spring Cloud 做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。    子项目      Spring Cloud 包含了很多子项目:    Spring Cloud

springcloud微服务实战_01_基础知识

六月ゝ 毕业季﹏ 提交于 2020-03-02 07:24:15
1.1 什么是微服务架构 微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于 HTTP 的 RESTful API 进行通信协作. 被拆分的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每一个服务都维护着各种的数据存储,业务开发,自动化测试以及独立部署机制. 由于有了轻量级的通信协作基础,所有这些微服务可以用不同的语言编写. 1.2 与单体架构的区别 在一个项目建设初期,由于业务不是很多,所以我们将这些业务全都放在一个一系统应用中进行开发.但是随着业务的大量聚集,一个简单的系统往往会变得十分臃肿,改动一个小的需求整个系统就需要重新部署上线,并且难以维护.慢慢的我们就将这个大的臃肿的项目拆分开为多个小型系统, 每个系统负责各自领域的业务.这些系统之间相互协调并且独立的开发与部署.由于是独立的部署,我们很容易准确的为每一个服务评估性能容量,通过配合服务间的协作流程也可以更容易的发现系统瓶颈位置,以及给予较为准确的系统性能容量评估. 1.3 如何实施微服务 微服务拆分的问题: 运维的新挑战 接口的一致性 需要更完善的接口与版本控制,以及更严格的开闭原则. 分布式的复杂性 拆分后的各个微服务都是独立部署并且运行独立的各自进程中,它们只能通过通信来进行协作

Leetcode 165.比较版本号(Compare Version Numbers)

◇◆丶佛笑我妖孽 提交于 2020-03-01 10:09:56
Leetcode 165.比较版本号 1 题目描述( Leetcode题目链接 )   比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。 你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。其第三级和第四级修订号均为 0。 输入 : version1 = "0.1" , version2 = "1.1" 输出 : - 1 输入 : version1 = "1.0.1" , version2 = "1" 输出 : 1 输入 : version1 = "7.5.2.4" , version2 = "7.5.3" 输出 : - 1 输入:version1 = "1.01" , version2 = "1.001" 输出: 0 解释:忽略前导零,“ 01 ” 和 “ 001 ” 表示相同的数字 “ 1 ”。 提示: 版本字符串由以点 (.) 分隔的数字字符串组成。这个数字字符串可能有前导零。

flask数据库迁移

时光总嘲笑我的痴心妄想 提交于 2020-03-01 00:31:21
数据库迁移 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。 在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。 为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。 首先要在虚拟环境中安装Flask-Migrate。 pip install flask-migrate 代码文件内容: #coding=utf-8 from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate,MigrateCommand from flask_script import Shell,Manager app = Flask(__name__) manager = Manager(app) app.config[ 'SQLALCHEMY_DATABASE_URI' ] = 'mysql://root:mysql@127.0.0.1:3306