Squid安装与实践

介绍 Squid是可以提供缓存功能的HTTP代理服务器软件,同时也可以过滤流量,帮助网络安全。通常用于转发tcp或其他网络请求,例如,在一个局域网环境中,通过一台能够访问公网的主机上的Squid代理服务器,使那些不能直接访问公网地址的主机访问公网。 安装与运行 如果启动失败查看/var/log/squid/squid.out中的详细日志。如果原因是Permission denied,除了排查相关目录所属及权限,还要注意是否开启selinux及相应控制策略。通常为了避免麻烦可以直接关闭selinux,修改 /etc/selinux/config 文件,将SELINUX设置为disabled,重启生效。为了不重启可以再执行下临时关闭命令 setenforce 0 。 配置 配置文件是 /etc/squid/squid.conf

Postgres XL运行在Docker容器中

这次实践是在Postgres XL实践基础上进一步尝试结合docker使用,主要目的是为了简化节点环境配置和Postgres XL版本升级过程。 目标是启动一批由相同镜像创建的容器,支持SSH访问,然后通过pgxl_ctl脚本管理Postgres-XL集群。 Docker镜像构建 首先对文件和目录进行划分,分为docker镜像部分和非docker镜像部分。 镜像部分 编译后的Postgres-XL二进制文件。 Postgres-XL运行时依赖的lib、系统参数和常用工具。 用户和SSH权限配置,使容器彼此通过postgres用户免密码访问。 .pgpass文件的软链接。因为尝试指定该文件路径的方式没成功,所以改为软链接的方式。 非镜像部分 配置和数据文件。 日志文件。 pgpass.conf文件。 其中镜像部分写入Dock

在云主机中安装运行boot2docker

背景 在某云上购买云服务器,初始安装的操作系统是Ubuntu14.04(没有boot2docker镜像,甚至没有Ubuntu16)。从官方下载boot2docker.iso或boot2docker-experimental.iso文件,目标是把它安装到云服务器中,并在某云的vnc控制台重启系统时选择boot2docker系统。 过程 准备镜像文件 首先把boot2docker.iso文件放到某个目录下,例如/boot/iso目录,然后将其挂载到另一个自定义的路径下,之后便能在该路径下查看和复制镜像中的文件。也可以通过解压iso文件的方式查看。 然后复制initrd.img文件和vmlinuz64文件到/boot目录下。 配置boot2docker系统启动项菜单 查看/boot目录可以看到主机的操作系统是通过grub引导加载

Docker学习记录

Docker是轻量级的容器化技术,其优势是容器开销低、开发与运行环境一体化、易移植、易部署等。其实现思路是在宿主机系统中运行docker-engine环境,然后在这个环境里运行一个一个的容器。所谓容器包含了开发者应用或服务、运行参数和依赖环境。例如,一个java web应用常见的开发、测试、线上部署情况是这样,从头到尾传递的都是可在web容器中运行的web应用程序,甚至仅仅是一个jar包。其运行所依赖的参数和第三方程序是单独需要配置和安装的。这可能会造成开发、测试、线上的环境不一致或,并带来重复繁琐的工作量。引入docker后,交付的不再仅仅是web应用本身,而是包含web应用、web容器、jdk、操作系统等内容的docker容器,不同环境下只需支持docker就可以快速发布运行。 Docker容器可以被固化,构建成只读的

Postgres XL实践与经验小结

本文是基于Postgres-XL 9.5r1.3版本的实践小结,应用于公司新手游“monster”的后台数据库服务。 准备主机环境 操作系统:ubuntu-14.04 集群管控 在这之前有过一次简单的尝试,基于9.2版本,集群搭建和管理使用的是pgxc_ctl脚本,虽然存在一些不足,但核心功能都能比较顺利地实现。这次版本升级后pgxc_ctl出现一些新问题,最终导致放弃pgxc_ctl,转为用shell命令实现符合实际需要的管控脚本。源代码 pgxc_ctl的问题: 配置复杂,一些操作如增删节点、故障转移等,会追加内容到配置文件,导致配置文件越来越混乱难读。 pgxc_ctl的init操作十分危险,会不加提示直接重置集群,导致数据丢失。(新版增加了force参数来区分是否强制重置) 新版pgxc_ctl的init在本应判断

PostgreSQL命令速查 – 基础

参考Postgres XL官方文档,PostgreSQL官方文档 登入退出 反斜线命令 角色(用户USER、组GROUP是角色ROLE的别名)和权限 表空间(指定文件存放的磁盘目录,创建数据库时通过设置表空间来隔离IO) 数据库 模式(为了减少同一database里对象命名冲突而设计的组,缺省为public) 表 结构描述 序列 索引 视图 批量执行 导出导入

Stunnel安装与实践

概念与用途 维基上介绍Stunnel是一个自由的跨平台软件,用于提供全局的TLS/SSL服务。通俗些讲Stunnel是为服务器和客户端之间的通讯连接提供安全加密的工具。其他类似的实现方法还有使用SSH建立安全连接隧道。 应用场景举例:在一个局域网环境中有一台具有公网地址的主机可以被外界访问。当位于本机或其他内网主机上的服务和应用(如Mysql、Mongodb、Hive、Spark、Http、Shell等)需要被外界安全调用时,可以通过在该主机上配置Stunnel服务,将需要被访问的服务和应用的地址和端口映射为本机的一个开放端口,暴露给外界。外界也通过配置自己的Stunnel服务,访问公网地址和对应端口来获取相关服务。 安装与配置 安装: 创建运行用户: 创建用于加密通讯的证书,并复制证书到需要通讯的两个stunnel端:

Linux命令速查 – 变量与运行参数

常用的有:declare,export,ulimit,prlimit,sysctl等。 declare 用于声明和显示已存在的shell变量。 set 用于显示系统中已经存在的shell变量,以及设置shell变量的新变量值。 export 用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 unset 用于删除已定义的shell变量(包括环境变量)和shell函数。 env 用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。 ulimit 用于限制用户进程占用的资源,包括硬资源(hard)和软资源(soft)。soft限制要小于等于hard限制,如果大于则在生效时会被hard值覆盖。 如果想永久生效需要修改/etc/security/limits.conf或/etc/security/li

Linux命令速查 – 日志与系统控制

常用的有:history、dmesg、last、lastb、lastlog、w、clear、reboot、shutdown、alias、crontab等。 history 用于显示历史命令。 dmesg 用于显示linux内核的环形缓冲区信息,可以从中获得系统架构、CPU、挂载的硬件、RAM等多个运行级别的大量的系统信息。信息来自/var/log/dmesg,用于诊断设备故障。 last 用于显示用户最近的登录信息。读取/var/log/wtmp文件。 lastb 用于显示异常的历史登录。 lastlog 用于显示系统中所有用户最近一次的登录信息。读取/var/log/btmp文件。 logger 用于通过syslogd记录日志。 syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/sys

记一次系统测试实践

背景 其实并不是一次规范的系统测试,而是对一个已经有两年时间的工程的主要逻辑进行补充测试。由于之前一直都是靠开发者和测试者的人力纯手工测试~并没有单元测试和集成测试代码。随着不断迭代新需求,业务功能的回归测试压力也越来越大。于是,为了快速发现新功能的加入对旧逻辑的影响,决定做一个程序运行的测试方法,来补充人工测试。 这个应用程序是一款手机App的服务端程序,基于spring开发,手机端与服务器主要通过json、fb等数据格式交互。服务端有统一的处理方法,首先将前端请求转为RequestObject,然后经过业务逻辑构造ResponseObject,最后将ResponseObject转换后发给前端。 这次系统测试的思路就是使用终端程序发起各种请求,服务端录制RequestObject和ResponseObject,测试时通过