openrsty(nginx_lua_module)做ES代理以及备份ES数据

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {

    upstream master {
        server 10.1.1.100:9200;
        server 10.1.1.100:9200 backup;#备份库
        keepalive 15;
    }

    upstream slave {#备份库
        server 10.1.1.100:9200;
        keepalive 15;
    }

    server {
        server_name localhost 127.0.0.1 10.1.1.225;
        listen 8888;

        location / {
            content_by_lua_block {

                local function getFile(file_name)
                    local f = assert(io.open(file_name, ‘r‘))
                    local string = f:read("*all")
                    f:close()
                    return string
                end

                ngx.req.read_body()
                ngx.log(ngx.ERR, ‘$$$‘ ..ngx.var.request_uri .. ‘$$$‘)

                local request_body = ngx.req.get_body_data()
                    if nil == request_body then
                        local file_name = ngx.req.get_body_file()
                        if file_name then
                            request_body = getFile(file_name)
                        end
                    end

                local master_resp, slave_resp
                local req_method_constant = ngx[‘HTTP_‘ .. ngx.req.get_method()]
                local arry = {method = req_method_constant, body = request_body}

                if req_method_constant == ngx.HTTP_POST or req_method_constant == ngx.HTTP_PUT or req_method_constant == ngx.HTTP_DELETE then
                    master_resp, slave_resp = ngx.location.capture_multi{
                        {‘/slave‘ .. ngx.var.request_uri, arry},
                        {‘/master‘ .. ngx.var.request_uri, arry}
                    }
                else
                    master_resp = ngx.location.capture_multi{
                        {‘/master‘ .. ngx.var.request_uri, arry}
                    }
                end

                --[[
                    使用master的响应头
                --]]
                for k,v in pairs(master_resp.header) do
                    ngx.header[k] = v
                end
                ngx.say(master_resp.body)
            }
        }

        location ~* ^/master {
            internal;
            rewrite ^/master(.*)$ $1 break;
            proxy_pass http://master;
        }

        location ~* ^/slave {
            internal;
            log_subrequest on;
            rewrite ^/slave(.*)$ $1 break;
            proxy_pass http://slave;
            access_log logs/upstream.log;
        }
    }
}

  

时间: 2024-10-06 06:20:39

openrsty(nginx_lua_module)做ES代理以及备份ES数据的相关文章

用apache做为代理下载本地pdf文件

有一些公司会用apache做为代理,下载服务器上的pdf文件.以下是apache做为代理的配置 一. 环境 centos6.5  192.168.69.3 二. yum安装apache 服务 [[email protected] ~]$ rpm -qa httpd    //查看是否有rpm包安装的apache服务httpd-2.2.15-60.el6.centos.5.x86_64 [[email protected] ~]$ rpm -e httpd-2.2.15-60.el6.centos

Squid做反向代理缓存

环境介绍: 主机名 角色 IP地址 squid.contoso.com squid代理服务器 192.168.49.135 image01.contoso.com 图片服务器(web) 192.168.49.139 一.准备工作 以其中一台为例: [[email protected] etc]# iptables -L Chain INPUT (policy ACCEPT) target     prot opt source               destination Chain FO

快速建立linux下的vpn服务器做加密代理

原文出处: http://www.xfocus.net/articles/200610/893.html 创建时间:2006-10-27文章属性:原创文章提交:fatb (fatb_at_security.zz.ha.cn) 作者:baoz日期:2006-10-26http://baoz.nethttp://xsec.org1妹儿:perlish(*)gmail.com or [email protected] (有时gmail收不到信或者会被当垃圾邮件过滤掉)欢迎转载任何人任何时候转载到任何地

【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置

阅读目录 > 参考的优秀文章 > 设置等待被代理服务器的最大响应时间 > 参考的优秀文章 Module ngx_http_proxy_module > 设置等待被代理服务器的最大响应时间 使用Nginx做反向代理时,因被代理服务器因业务确实复杂,需时较久,往往超过60秒.而Nginx默认设置超时时间为60秒. 针对这一情况,需修改默认配置.因配置项中涉及超时的选项太多,这里记录一下. 等待被代理服务器的最大响应时间为120秒,需加如下配置: proxy_read_timeout 1

CentOS 7 安装Nginx做反向代理

题记 须要使用nginx的反向代理功能,測试环境为centos+NGINX 1.8.0. 跳过一些繁琐的问题,直接记录核心 步骤 (1)centos 安装在VM中.因此须要注意网络连接问题 (2)安装nginx使用的是具有网络的yum功能 (3)配置centos防火墙,须要开启80 port (4)nginx 反向代理配置 (5)性能优化设置(兴许工作...) 实现 一. yum安装nginx 先加入nginx源,測试使用最新的nginx 1.8.0 rpm -ivh http://nginx.

nginx做正向代理

Nginx常用来做反向代理,但是作为正向代理大家有没有试过呢? Nginx配置如下: server{        resolver x.x.x.x;        listen 82;        location / {                proxy_pass http://$http_host$request_uri;        }} 注意项:1. 不能有hostname2. 必须有resolver, 即dns,即上面的x.x.x.x,换成你们的DNS服务器ip即可3 .

金庸武功之“碧血剑法”----squid做透明代理

一.试验目的:公司阿里云环境要求之开放一个代理服务器,其他服务器不允许有外网IP 二.环境拓扑: A:代理服务器:(利用squid做透明代理) (centos7.2) [[email protected] squid]# ip a eth0:10.30.204.122 eth1:116.62.XX.XX B:客户端服务器:(centos7.2) [[email protected] squid]# ip a eth0:10.30.204.90 三.试验环境准备(A,B都执行) yum  -y u

nginx1.9+做TCP代理(端口转发)

如题所示,nginx在1.9版本之后可以充当端口转发的作用,即:访问该服务器的指定端口,nginx就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者.nginx的TCP代理功能跟nginx的反向代理不同的是:请求该端口的所有流量都会转发到目标服务器,而在反向代理中可以细化哪些请求分发给哪些服务器:另一个不同的是,nginx做TCP代理并不仅仅局限于WEB的URL请求,还可以转发如memcached.MySQL等点到点的请求 实现步骤如下: (1)nginx

nginx做反向代理+apache

先上个规划图,自己随便画的,大家也随便看看 192.168.1.119为nginx做反向代理并处理静态页面,apache处理动态页面,nfs共享网站家目录,svn代码管理. 192.168.101为apache处理动态页面,挂载192.168.1.119的共享目录. 192.168.1.96为mysql数据库,允许两台web服务的连接权限. 系统使用centos6.5 一,配置192.168.1.119 1.首先在192.168.1.119上安装nginx+apache+php+nfs+svn