Category Uncategorized

LNMP下HTTP强制跳转HTTPS的几种写法

现在越来越多的网站都启用https访问了,SSL证书也不贵,还有一些免费的比如Let’s Encrypt或者腾讯也有提供1年免费证书等等,加上https有更好的安全性,甚至有人说以后搜索引擎都更青睐https的网站…今天就记录下在HTTP强制跳转HTTPS的几种方式方法,方便哪天我要加SSL的时候使用。 我们需要修改域名配置文件,这里我以军哥LNMP环境为例,路径在/usr/local/nginx/conf/vhost/ 如上图,选择部分就是添加的跳转内容,通常我们有多种写法方式,下面列举。?View Code PHP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 No.1 if ($scheme = http ) { return 301 https://$host$request_uri; }   No.2 server_name zrblog.net ; rewrite ^(.*) permanent;…

VPS安装开启TCP BBR提速工具

TCP BBR拥塞控制算法(简称BBR),可以应用到常规的KVM和XEN架构的VPS、服务器中,用来提升服务器下载的速度。因为要涉及到内核的修改,Vultr中文网()建议我们使用在一些非网站环境中的项目,比如搭建的软件工具据说有可以较大的提高速度。 第一、预先准备工作 第二、安装BBR之前的速度记录 这里我们先不去安装BBR,用工具测试看看没有安装BBR的Vultr VPS简单的性能。 1、随机节点下载速度  2、视频下载速度  第三、一键安装安装BBR工具方法 这里选择一键安装BBR脚本安装。 # wget –no-check-certificate # chmod +x bbr.sh # bash bbr.sh 1 2 3 4 安装完成后,我们会看到 然后输入y回车,重启服务器。 基本上是可以安装成功的,检查是否成功: 这里我们是安装成功的。 第四、安装BBR之后的速度记录 1、随机节点下载速度  2、视频下载速度  第五、Vultr安装BBR总结 1、在CentOS 7中安装TCP BBR还是比较简单的,一键安装。 2、安装之后,随机下载速度基本没太大的变化;但对于视频速度是有明显的提高。 bbr.sh脚本内容: 版权声明:本文为博主原创文章,未经博主允许不得转载。

如何查询mysql中是否表被锁

可直接在mysql命令行执行:show engine innodb status\G; 查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist; show status like ‘%lock%’ show OPEN TABLES where In_use > 0; 这个语句记录当前锁表状态 另外可以打开慢查询日志,linux下打开需在my.cnf的[mysqld]里面加上以下内容: slow_query_log=TRUE(有些mysql版本是ON) slow_query_log_file= long_query_time=3 Windows: 在my.ini配置文件的[mysqld]选项下增加: slow_query_log=TRUE slow_query_log_file= long_query_time=3 添加完成之后记得一定要重启mysql服务才能生效记录输出。最后在MySQL客户端中输入命令: show variables like ‘%quer%’; 核查一哈是否Ok 开启mysql慢查询日志 查看配置: //查看慢查询时间 show variables like “long_query_time”;默认10s //查看慢查询配置情况 show status like “%slow_queries%”; //查看慢查询日志路径 show variables…

MyCat简单使用与配置

基本配置 1 . 在mycat 2 . dataHost标签上属性释义: balance:负载均衡类型 0:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上 1:全部的readHost与stand by writeHost参与select语句的负载均衡, 2:所有读操作都随机在writeHost、readHost上分发 3:所有读请求随机分发到writeHost对应的readHost执行,writeHost不负担读压力 writeType:负载均衡类型 0:所有写操作发送到配置的第一个writeHost,当第一个writeHost宕机时,切换到第二个writeHost,重新启动后以切换后的为准,切换记录在配置文件:dnindex.properties中 1:所有写操作都随发送到配置的writeHost 2:尚未实现 switchType:切换方式 -1:不自动切换 1:自动切换(默认) 2:基于MySql主从同步的状态来决定是否切换 读写分离 一. MySQL主从配置 1 . 前提:多台MySQL服务器主机的时间是同步的,否则无法实现主从配置 2 . MASTER修改MySQL配置文件vim log-bin=mysql-bin-1 : 表示配置同步的bin的文件名称,不同的主从关系组,名称不同 server_id=196 : 表示MySQL服务的编号,这个编号一般取IP的最后一位,也可自定义 3 .…

Spring事务管理(详解+实例)

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤失败对双方都不是好事,如果不管哪一个步骤失败了以后,整个取钱过程都能回滚,也就是完全取消所有操作的话,这对双方都是极好的。 事务就是用来解决类似问题的。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。 在企业级应用程序开发中,事务管理必不可少的技术,用来确保数据的完整性和一致性。 事务有四个特性:ACID 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。 2 核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略。 Spring事务管理涉及的接口的联系如下: 2.1 事务管理器 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。 Spring事务管理器的接口是org.springframework.transaction.PlatformTransactionManager,通过这个接口,Spring为各个平台如JDBC、Hibernate等都提供了对应的事务管理器,但是具体的实现就是各个平台自己的事情了。此接口的内容如下: 从这里可知具体的具体的事务管理机制对Spring来说是透明的,它并不关心那些,那些是对应各个平台需要关心的,所以Spring事务管理的一个优点就是为不同的事务API提供一致的编程模型,如JTA、JDBC、Hibernate、JPA。下面分别介绍各个平台框架实现事务管理的机制。 2.1.1 JDBC事务 如果应用程序中直接使用JDBC来进行持久化,DataSourceTransactionManager会为你处理事务边界。为了使用DataSourceTransactionManager,你需要使用如下的XML将其装配到应用程序的上下文定义中: 实际上,DataSourceTransactionManager是通过调用java.sql.Connection来管理事务,而后者是通过DataSource获取到的。通过调用连接的commit()方法来提交事务,同样,事务失败则通过调用rollback()方法进行回滚。 2.1.2 Hibernate事务 如果应用程序的持久化是通过Hibernate实习的,那么你需要使用HibernateTransactionManager。对于Hibernate3,需要在Spring上下文定义中添加如下的<bean>声明: sessionFactory属性需要装配一个Hibernate的session工厂,HibernateTransactionManager的实现细节是它将事务管理的职责委托给org.hibernate.Transaction对象,而后者是从Hibernate Session中获取到的。当事务成功完成时,HibernateTransactionManager将会调用Transaction对象的commit()方法,反之,将会调用rollback()方法。 2.1.3 Java持久化API事务(JPA) Hibernate多年来一直是事实上的Java持久化标准,但是现在Java持久化API作为真正的Java持久化标准进入大家的视野。如果你计划使用JPA的话,那你需要使用Spring的JpaTransactionManager来处理事务。你需要在Spring中这样配置JpaTransactionManager: JpaTransactionManager只需要装配一个JPA实体管理工厂(javax.persistence.EntityManagerFactory接口的任意实现)。JpaTransactionManager将与由工厂所产生的JPA EntityManager合作来构建事务。 2.1.4 Java原生API事务 如果你没有使用以上所述的事务管理,或者是跨越了多个事务管理源(比如两个或者是多个不同的数据源),你就需要使用JtaTransactionManager: JtaTransactionManager将事务管理的责任委托给javax.transaction.UserTransaction和javax.transaction.TransactionManager对象,其中事务成功完成通过UserTransaction.commit()方法提交,事务失败通过UserTransaction.rollback()方法回滚。 2.2 基本事务属性的定义 上面讲到的事务管理器接口PlatformTransactionManager通过getTransaction(TransactionDefinition definition)方法来得到事务,这个方法里面的参数是TransactionDefinition类,这个类就定义了一些基本的事务属性。 那么什么是事务属性呢?事务属性可以理解成事务的一些基本配置,描述了事务策略如何应用到方法上。事务属性包含了5个方面,如图所示: 而TransactionDefinition接口内容如下: 我们可以发现TransactionDefinition正好用来定义事务属性,下面详细介绍一下各个事务属性。 2.2.1…

Welcome to the Gutenberg Editor

The goal of this new editor is to make adding rich content to WordPress simple and enjoyable. This whole post is composed of pieces of content—somewhat similar to LEGO bricks—that you can move around and interact with. Move your cursor…

Linux 之 rsyslog 系统日志转发

一、rsyslog 介绍 ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,据官网介绍,现在可以处理100万条信息。 特性:1.多线程 2.支持加密协议:ssl,tls,relp 3.mysql、oracle、postgreSQL 4.等等..   二、实践部署() 2.1 环境图 2.2.rsyslog server上部署操作 安装rsyslog 程序(rsyslog默认已经在各发行版安装,如果系统中没有的话,可以用yum 进行安装,如下:) [root@opm ~]# yum install rsyslog -y 编辑rsyslog配置文件,路径 ,修改前最好先备份一份,修改后的文件内容如下 [root@opm log]# grep -v “^#” | grep -v “^$” $ModLoad imuxsock #…

Centos7 之安装Logstash ELK stack 日志管理系统

一、介绍 The Elastic Stack – 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案。它可以从任何来源,任何格式进行日志搜索,分析获取数据,并实时进行展示。像盾牌(安全),监护者(警报)和Marvel(监测)一样为你的产品提供更多的可能。 Elasticsearch:搜索,提供分布式全文搜索引擎 Logstash: 日志收集,管理,存储 Kibana :日志的过滤web 展示 Filebeat:监控日志文件、转发 二、测试环境规划图 环境:ip、主机名按照如上规划,系统已经 update. 所有主机时间一致。防火墙测试环境已关闭。下面是这次elk学习的部署安装 目的:通过elk 主机收集监控主要server的系统日志、以及线上应用服务日志。 三、Elasticsearch+Logstash+Kibana的安装(在 elk.test.com 上进行操作) 3.1.基础环境检查 [root@elk ~]# hostname elk.test.com [root@elk ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6…

运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)

对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。下面就对logrotate日志轮转操作做一梳理记录: 1)配置文件介绍 Linux系统默认安装logrotate工具,它默认的配置文件在: logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入中执行。 另外,如果 里面的文件中没有设定一些细节,则会以这个文件的设定来作为默认值。 Logrotate是基于CRON来运行的,其脚本是系统自动完成的。 实际运行时,Logrotate会调用配置文件。 可以在,用来覆盖Logrotate的缺省值。 1 2 3 4 5 6 7 8 9 [root@huanqiu_web1 ~]# cat #!/bin/sh /usr/sbin/logrotate  >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then     /usr/bin/logger -t logrotate “ALERT exited abnormally…