服务器运维

[置顶] Aiiphp框架测试版发布,欢迎测试!

[置顶] Linux常用运维命令和linux常用管理操作命令(整理)

[置顶] Linux/Window服务器安全配置等常用软件下载列表

Orange:一个基于OpenResty的API网关

orange是一个基于openresty的API Gateway,提供API及自定义规则的监控和管理,如访问统计、流量切分、API重定向、API鉴权、WEB防火墙等功能。Orange可用来替代前置机中广泛使用的Nginx/OpenResty, 在应用服务上无痛前置一个功能丰富的网关系统。它有以下特性:

  • 动态更新Nginx/OpenResty配置而无需重启或reload
  • 通过MySQL存储来简单支持集群部署
  • 支持多种条件匹配和变量提取
  • 支持通过自定义插件方式扩展功能
  • 内置多个通用插件

» 阅读全文

关键词: orange , openresty

高并发下LNMP的构架考虑及资源分配简单思考 

LNMP中的N是nginx为Web Server

nginx作为内容的分发者,会在文件系统找到相应的文件,就返回给浏览器。如果是静态的文件,就可以直接返回,但是如果是index.php需要解析并执行的脚本文件时,Web Server就无力了,需要将请求转发给相应的脚本语言的解析器来解释并执行,最终将程序的执行结果,返回给Web Server,再返回给浏览器。

LNMP中的P是php充当后端的逻辑处理程序

那么php与nginx的常规协作方式是如何的呢?需要我们明确几个概念

cgi

通用网关接口,是HTTP协议中描述的,Web Server与后端处理程序进程间通信的协议

» 阅读全文

openresty+Lua构建高性能、高可靠、安全的登陆校验

openresty+lua构建高性能、高可靠、安全的登陆校验,主要目的的访问伪造 cookie 进行登录。在webserver层进行校验,直接告诉应用层校验结果,就可以避免上面的问题。openresty+Lua就是这样一种webserver上安全、稳定、高性能的实现,并且开发成本低的方案。


新建,access.lua 代码:


local secretkey='1234567890abcdefghi'
if ngx.var.cookie_uid == nil or ngx.var.cookie_username == nil or ngx.var.cookie_token ==nil then
ngx.req.set_header("Check-Login", "NULL")
return
end


» 阅读全文

关键词: lua , openresty

nginx+lua 实现简单的防机器程序访问

这个比较简单,我只是觉得这个思路不错,借鉴了别人思路而已,可以学习。



    location /cookie {
   	    default_type 'text/html';
        rewrite_by_lua '
            local random = ngx.var.cookie_random

            if(random == nil) then
                random = ngx.md5(math.random(999999) .. os.time() .. math.random(999999))
            end

            local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
            if (ngx.var.cookie_token ~= token) then
                ngx.header["Set-Cookie"] = {"token=" .. token, "random=" .. random}
                return ngx.redirect(ngx.var.scheme .. "://" .. ngx.var.host .. ngx.var.uri)
            end
        ';
        content_by_lua_block {
            ngx.say("ok2")
    	}
    }
但是要注意了,这个不是万能神药,不能解决所有的问题。同时也要注意了,如果是蜘蛛的之类的也设置下白名单,因为他们可能获取不到 cookie 导致循环中。。。




利用openresty+lua+redis 实现封杀频繁恶意访问IP地址

      Nginx来限制访问控制的方法有多种,nginx主要有2个模块控制,但是那些不支持自定义,非常死,在大多数场景下并不实用。今天分享一个:利用openresty+lua+redis 实现封杀频繁恶意访问IP地址,当然这个方式也是有弊端的,那就是不断试用代理 IP之类的,但是用户还是有的,起码提高了恶意的成本。

      本人最近已经完全抛弃了淘宝的Tengine,原生态的nginx,已经换为春哥的 openresty,特别想说的一点就是淘宝的 low 逼货,感觉一堆问题,尼玛,可能和他缘分不够吧,哈哈,于是,换到春哥的 openresty。喜欢春哥的 openresty 的最重要的原因,不外乎openresty打包了 nginx 的时候,集成了很多的有用的扩展,特别是 lua,一个小巧的编程语言,各种爽歪歪。本文就是:openresty最新稳定版本+lua Lua 5.1.4+redis最新稳定版本 

     如果你是原生态的 nginx,那你就自己安装 lua 和 nginx 的扩展吧,或者直接安装 openresty so easy。

先在 http 中加载lua 包和 lua 的 c 包

lua_package_path "/usr/local/openresty/lualib/?.lua;;";

lua_package_cpath "/usr/local/openresty/lualib/?.so;;";

1.png - 大小: 85.62 KB - 尺寸: 934 x 482 - 点击打开新窗口浏览全图

» 阅读全文

关键词: lua , openresty , redis

Linux平台监控工具munin安装笔记

munin其实很早就听过了,但是我基本上都使用 : monitorix :http://monitorix.jincon.com/ ,以及NMON:http://www.jincon.com/archives/288/  ,但是听说munin还不错,支持各类插件,于是安装了下

1、安装EPEL

rpm -Uvh  http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm

vim /etc/yum.repos.d/dag.repo

输入:

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=1

gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

enabled=0   // 这里建议设为,网上很多都写1,可能会导致 perl个别库出现冲突


2、安装munin服务端和munin-node客户端

yum install munin munin-node

如果不行,就 yum makecache

» 阅读全文

iTerm2让SSH自动输入免密码登录远程Linux服务器

iTerm2 是我最喜欢的远程连接工具之一,但是以前不知道怎么实现免密码登录,每次都要输入各种服务器的

密码进行登录,有时候脑子不好,也不容易记住,所以,就想着怎么实现:

iTerm2让SSH免 输入密码登录远程Linux服务器

google 一番,其实很简单

vi ~/.ssh/whatevername

  set user 用户名
  set host ip地址
  set password 密码
  set timeout -1

  spawn ssh $user@$host
  expect "*assword:*"
  send "$password\r"
  interact
  expect eof
然后打开iTerm2的设置里,点开Profiles,左下角点+号新增一个配置文件,

然后在Genernal->Command下选择 Command,在输入框里填入 expect ~/.ssh/whatevername

以后就可以直接免密码登录啦,其实,这个不是真的免密码登录,只是自动免输入密码而已。

CentOS安装tmux的正确方法

centos官方软件源中没有 tmux ,如果不想使用EPEL源或者其他第三方源,就要自己编译安装。网上一些直接就 yum install xxx 让人着实郁闷,之前用 screen 较多。 tmux 感觉不错,可以试试,Centos 安装过程如下:

wget http://downloads.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz

wget http://jaist.dl.sourceforge.net/project/tmux/tmux/tmux-2.0/tmux-2.0.tar.gz 

tar xzf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure

make && make install

cd ..


» 阅读全文

关键词: 安装tmux , centos