centos配置双ip和双网关

办公室有台内部的服务器,需要新增一个不同段的IP,很少接触多IP+网关的情况,发现直接配置两个ip上去是不能同时使用的,随手记一下流水账。操作系统:centos 6.10正在用的IP1: 10.10.10.98 / Gateway: 11.10.10.1 / NETMASK: 255.255.255.0需新增的IP2: 10.252.252.98 / Gateway: 10.252.252.1 / NETMASK: 255.255.255.0 一、双网卡配置 配置多IP时非常容易因配置错误导致断网,建议先配置好一个ip,网络正常的情况下,在配置第二块网卡,对于生产上的服务器,怕配置出错可以先备份好网络配置文件,配置好双ip后,用定时任务过几分钟恢复一下网卡配置,如果配置没有问题在去掉定时任务,然后重新配置一次,这样比较保险。当前在用...

- 阅读剩余部分 -

nginx按条件输出日志

之前写过一篇: nginx两种实用的自定义访问日志格式 里面介绍了两种自定义的日志格式,一种是对程序友好的json格式日志,另外一种是手动分析友好的日志格式。人肉分析日志时,如果不是排查应用相关的日志,关注的访问日志多数是指定条件的,如分析502、404等状态码的日志.error log比较简单,就不说了。下面就介绍一下按条件输出访问日志的一些做法。nginx 输出日志用到的内置模块是ngx_http_log_module,我们先来看看输出access log的语法:access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];可以看到access_log是支持if条件的,需要1.7以上版本的nginx,if条件为0或空时不输出日志...

- 阅读剩余部分 -

nginx多https证书配置精简

对于nginx多https站点通常的做法是这样:server 443 ssl;server_name nixops1.me;ssl_certificate /usr/local/nginx/keys/nixops1.me.crt;ssl_certificate_key /usr/local/nginx/keys/nixops1.me.key;......如果有多个https站点,就是每个站点复制一份这个配置。如nixops2.me、nixops3.me等等,在只有几十个https站点的时候还好,如果某个站点的域名特别多,例如有几千个域名甚至上万个域名的时候,这个配置就很恐怖了,需要精简并合并配置。下面举例说明,假设应用场景为:同一站点有大量域名需要配置https证书,其它配置一样每个之证书都是泛域名证书,如let's enc...

- 阅读剩余部分 -

通过nginx反向代理实现内网yum源

自建机房为了节省公网流量都会有内网的yum源,对于自动化程度比较高,软件标准化和准入做的比较好的情况下,常用软件会打成rpm包放进内网源里,很多基础软件和依懒也都会打包进系统模板中。其实多数情况下,需要从yum源里更新的包不多,不需要将整个centos源都同步进内网源里。可以通过nignx反向代理用偷懒的方式实现一个yum源。我们先来看看yum的工作流程:服务器请求根据自己的系统版本、架构、依次请求各启用的源中的repomd.xml文件repomd.xml中保存了软件仓库中的metadata,也就是“元数据”,这些数据包含了该软件仓库内所有软件包的包名及其所需的依赖环境、软件包里文件列表等信息yum或dnf下载了metadata后,将这些信息和本地环境对比,进而确认需要安装哪些rpm包,并在用户确认后开始安装或更新一般Yum...

- 阅读剩余部分 -

linux文件描述符和IO重定向

一、文件描述符在linux和unix系统中,一切都是文件,内核是通过文件描述符来访问文件,文件描述符是非负整数,最大值受系统最大可打开的文件数限制。可以使用命令查看:ulimit -a查看open files的值,默认是1024。二、标准流先来看看维基百科中标准流的定义: 在linux和unix系统中,一个程序运行时和环境交互(INPUT/OUTPUT)的通道,叫标准流。对于Linux下的进程,每个进程都有三个标准的文件描述符,对应于三个标准流:标准输入:文件描述符为 0,对应标准流 stdin ,对应设备为键盘标准输出:文件描述符为 1,对应标准流 stdout,对应设备为显示器标准错误:文件描述符为 2,对应标准流 stderr,对应设备为显示器linux下的用户都是通过终端进行交互,如bash、sh、...

- 阅读剩余部分 -

使用lego签发Let's Encrypt的证书

五年前Let‘s Encrypt还不支持泛域名证书,我这个懒人为了省事,一下子买了五年的wildcard证书。截止到2020年7月22日,Let’s Encrypt已经有近六千四百万活跃的域名,有一亿三千六百万个证书,每天签发近一百五十万次。最重要的是证书全部是免费的,经过这几年的发展,Let‘s encrypt已经是目前互联网最重要的组织之一。而且周边和教程都已经非常成熟了,客户端就有几十种。我的网站要求就两点,一是能支持签发和续签widlcard证书,第二就是要使用简单,最终综合比较了一下选择了Lego。Lego是Go语言写的,使用之前要先安装GoLang。 一、安装GoLang 从官网下载go语言相应版本的客户端,解压安装即可,需要注意以下两点:Linux系统下不要安装多个版本的GO需要正确设置GOROOT和环境变量。不然编译l...

- 阅读剩余部分 -

使用systemtap进行抓包

systemtap是一个监控追踪系统调用、调试内核的工具,可以在系统运行时动态的调试内核,可以说是内核开发者必须要掌握的工具。我使用这个工具是因为线上的应用存在fastjson的漏洞,被黑客执入了木马,在骨干交换机上抓到异常流量后,确定了内网服务器IP,登录服务器后使用lsmod、ps、netstat、ss、lsof这些命令无法发现异常,甚至连tcpdump都无法抓到这个木马,猜测是rootkit木马加载了内核模块、实现了无文件、无进程,只有每20分钟一次的心跳包,想揪出来非常困难。 一、安装 编译是比较麻烦的,centos base源里就有systemtap,主要有三个依赖:kernel-debuginfo 在CentOS-Debuginfo源里,默认没启用elfutilskernel-devel ,和 elfut...

- 阅读剩余部分 -

tomcat多功能启动脚本

tomcat bin目录下已经有了启动、关闭的脚本,写这个脚本主要是为了方便自动化运维,把tomcat和jdk推到服务器上解压后,把这个脚本传到PATH目录下,改个名字,给个执行权限就可以了,可以少设置很多东西,同时功能更加丰富。主要有以下几点功能:只需配置JDK目录和tomcat目录即可,无需设置全局JDK环境变量和setenv.sh可以指定tomcat启动运行的用户系统中有多个tomcat时,可以公用一个脚本每次启动tomcat都会先检查目录权限和清理临时目录,并调整ulimit,防止应用使用缓存和出现性能问题可以查看tomcat运行详细情况,cpu/内存/RSS/VSZ/运行时间等可以使用本脚本tail输出 catalina.out安全停止tomcat,先正常关闭tomcat,等待一段时间后kill,确保tomcat能够关闭可以...

- 阅读剩余部分 -