2018年4月

Linux集群架构(一)keepalived高可用

一、服务器集群介绍

服务器架构通过功能可分为高可用、负载均衡两大类。

高可用一般软件有heartbeat、keepalived。
这两个软件的核心原理都是通过心跳线连接两台服务器,一台宕机另一台接管服务。
heartbeat只支持两个节点,并且在centos6上面有一些问题,比如说切换的时候不是很及时,最重要的是它早已停止更新。

负载均衡可以实现大量的访问,硬件环境在前端需要一台服务器作为分发器,负责把用户请求分发给后端服务器,后端的数量至少为2。
开源软件有LVS、keepalived、haproxy、Nginx。
商业的有F5、netscaler

- 阅读剩余部分 -

隐藏web相关服务的版本号

一、隐藏apache的信息

在apache的http.conf中添加或修改成如下代码即可:

ServerTokens Prod
ServerSignature Off

二、隐藏Nginx版本信息

Nginx的版本号主要在两个地方会有:

  • 第一个是HTTP header,有个Server:nginx/1.x.x类似会暴露Web服务器所用软件名称以及版本号,这个也是大多数Web服务器最容易暴露版本号的地方。
  • 第二个地方是Nginx出错页面,比如404页面没有找到等,这是如果用户没有指定页面的话,那么Nginx自己的页面会有版本戳记。

- 阅读剩余部分 -

shadowsocks-libev报错: error while loading shared libraries: libsodium.so.13

shadowsocks-libev报错:

try to bind interface: 0.0.0.0, port: 59906
ss-server: error while loading shared libraries: libsodium.so.13: cannot open shared object file: No such file or directory

字面上的意思是共享库没找到,那就手动找一下看看是不是真的没有这东西。

find / -name libsodium.so.13

- 阅读剩余部分 -

shell生成随机字符的几种方法

一般在写shell脚本的时候,会有需要生成一些随机字符,比如在写批量生成用户+随机密码的脚本的时候,就会用到随机生成的字符串来作为新建用户的密码。以下的几种方式可以随机生成字符串。当然,还要许多方法都能完成文章标题的目的,这里仅列举出来部分的。

1.使用shell的random变量

[root@virmach ~]# echo $RANDOM 
1908

2.使用openssl

[root@virmach ~]# openssl rand -base64 8 # 8是8位的意思
K0NYLr0u0Xo=

- 阅读剩余部分 -

expect工具的使用

一、介绍

我们通过Shell可以实现简单的控制流功能,如:循环、判断等,但是对于需要交互的场合则必须通过人工来干预。

有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能,一般来说这些输入都需要手工输入进行的,而expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。

所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和执行远程命令。

- 阅读剩余部分 -

patch和diff命令详解

一、简介

Linux patch命令用于修补文件。

说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。

diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,它比较给定的两个文件的不同。如果比较的是文件夹,还要加上-r参数,如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。

diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

- 阅读剩余部分 -