Browse Category: 后端

Consul 入门笔记

Consul [ˈkɑ:nsl] 是一个分布式的服务发现和配置管理工具,本文是根据consul 入门指南 整理的笔记。

1. 安装

系统是三台虚拟机:

  • CentOS release 6.8
  • CentOS release 7
  • Ubuntu 16.04 LTS

前往 官网下载地址 下载相应系统最新的二进制包,复制consul_VERSION_linux_amd64.zip 到3个节点的 consul 目录下。

在3台虚拟机中按相同步骤安装 consul

2. 开发模式

consul 开发者模式,可以快速开启单节点的 consul服务,具有完整功能,方便开发测试。

2.1 启动开发模式

开发模式命令:

consul members 命令查看当前集群的节点情况

通过HTTP API 查看节点信息

2.2 服务注册

服务可以通过配置文件注册,也可以通过HTTP API 添加。这里以配置文件定义服务:

如果需要定义多个服务,添加多个服务配置文件即可

2.3 服务发现

当定义服务并且重启consul 代理后,就可以通过HTTP API 查询服务信息。

3. Consul 集群

consul 是一个CS 模式的软件,生产环境下一个集群中建议准备3~5个节点运行服务模式的consul,其他节点运行客户端模式。

3.1 启动server 模式

  • -server 以服务模式运行
  • -node 节点名称
  • -bind 指定监听地址,用于多网卡服务器
  • -bootstrap-expect 额外的服务模式节点数量
  • config-dir 配置文件目录

3.2 启动client 模式启动

在集群中其他节点上以客户端模式运行consul,注意更改绑定IP 和节点名。

3.3 加入集群

客户端模式的consul 需要加入一个服务端节点,才能同步服务信息。

加入集群:

查看集群节点:

客户端节点服务发现功能

参考

OpenResty 环境搭建

OpenResty 是一个基于Nginx 与Lua 的高性能Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。本文是根据 openresty 官网 指南搭建OpenResty 服务的笔记。

1 安装 OpenResty

系统 Ubuntu 16.04 LTS

1.1 安装依赖库

1.2. 编译安装 OpenResty

下载地址 https://openresty.org/en/download.html

编译安装命令

VERSION 是下载的openresty 具体版本号。

make install 后应用在 /usr/local/openresty/bin/openresty 目录。

2. 启动服务

准备项目目录

2.1 配置 nginx.conf

OpenResty 是Nginx 与Lua 的封装,最终用运行的还是nginx。

~/work/conf/nginx.conf

2.2 启动 nginx

启动 nginx

如果觉得每次使用/usr/local/openresty/nginx/sbin/nginx 不方便,可以设置环境变量:

~/.bashrc

执行 source ~/.bashrc 使配置生效。

2.3 测试 nginx

测试条件1: 基于 lua 模块响应文本

测试条件2: 打印参数

注意 因为我们手动指定了nginx 的配置文件和执行临时目录,所以重启nginx 时,也需要带上相关配置。重启命令如下:

参考

SSH 协议与使用

SSH一种网络协议,用于计算机的加密登录,用避免被中途截获泄漏密码。

OpenSSH是 SSH的一种实现

基本用法

使用ssh连接远程机器的22号端口(默认端口)

SSH协议过程

  1. 远程主机收到用户的登录请求,把自己的公钥发给用户
  2. 用户使用这个公钥,将登录密码加密后,发送回来
  3. 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

存在问题:中间人攻击

如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。

解决中间人问题

第一次登陆时提示

用户自行确认该公钥指纹,将检验过的公钥保存在/etc/ssh/ssh_known_hosts

公钥登陆

用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码

生成公秘钥对

$ ssh-keygen

公秘钥文件保存在 $HOME/.ssh/ 目录

上传公钥

$ ssh-copy-id user@host

无效时检查

远程服务器 /etc/ssh/sshd_config ,去掉注释

重启远程主机 ssh服务 service ssh restart

authorized_keys

用户的公钥,保存在远程主机登录后的用户主目录的$HOME/.ssh/authorized_keys文件中

公钥是authorized_keys文件末尾的一段字符串

ssh登录

配置文件

~/.ssh/config

连接共享

快速登录配置

$ ssh d(tab) 实现自动补全

秘钥登录

将本地.ssh/keyfile.pub 拷贝到远端.ssh/authorized_keys,设置文件权限为600

添加配置IdentityFile ~/.ssh/keyfile.pub

注意清除known_hosts记录

参考