zoukankan      html  css  js  c++  java
  • lua_nginx_module用例

    content_by_lua

    server {
        listen 80;
        server_name lua.luckybing.top;
        location / {
            default_type 'text/plain';
            content_by_lua '
            if ngx.var.remote_addr=="203.100.83.125" then
              ngx.say("hello,from yunxiao")
            else
              ngx.say("hello,from other")
            end';
        }
    }

    rewrite_by_lua

     server {
        listen 80;    
        server_name lua.luckybing.top;
        location / {
            rewrite_by_lua '
              if ngx.var.remote_addr=="203.100.83.125" then
                return ngx.redirect("http://www.luckybing.top", 302)
              else
                return ngx.redirect("http://chat.luckybing.top", 302)
              end';
        }
    }

    access_by_lua

    server {
        listen 80;
        server_name lua.luckybing.top;
        location @client{
            proxy_pass  http://www.baidu.com;
        }
          location / {
            access_by_lua '
                if ngx.var.remote_addr=="203.100.83.125" then
                  ngx.exit(ngx.HTTP_FORBIDDEN)
                else
                  ngx.exec("@client")
                end';
        }
    }

    rewrite_by_lua

    server {
            listen 80; 
            server_name lua.luckybing.top;
            location @client{
                proxy_pass http://47.95.222.240:3000;
            }
            location @client2{
                proxy_pass http://47.95.222.240:4000;
            }
            location / {
                default_type 'text/html';
                #ngx.var.remote_addr
                rewrite_by_lua '
                     myIP = ngx.req.get_headers()["X-Real-IP"]
                     if myIP == nil then
                        myIP = ngx.req.get_headers()["x_forwarded_for"]
                     end
                     if myIP == nil then
                        myIP = ngx.var.remote_addr
                     end
    
                    if myIP=="203.100.83.125" then
                      ngx.exec("@client2")
                    else
                      ngx.exec("@client")
                end';
            } 
        }

     lua-nginx 负载均衡

    upstream wxqy {
          ip_hash;
          server  127.0.0.1:4000;
          server  127.0.0.1:4001;
    }
    
    
    
    server {
        listen 8091;
        server_name wxqy.iyunxiao.net;
        server_tokens off;
        access_log  off;
    
        location @client{
            proxy_pass http://wxqy;
        }
        location @client2{
            proxy_pass http://127.0.0.1:4002;
        }
    
    
        location / {
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   REMOTE-HOST      $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            #proxy_pass  http://wxqy;
            default_type 'text/plain';
            rewrite_by_lua '
             myIP = ngx.req.get_headers()["X-Real-IP"]
            if myIP == nil then
               myIP = ngx.req.get_headers()["x_forwarded_for"]
             end
            if myIP == nil then
               myIP = ngx.var.remote_addr
            end
            if myIP=="172.31.0.2" then
                ngx.exec("@client2")
            else
               ngx.exec("@client")
            end';
    
        }
    }
  • 相关阅读:
    Java连接Mysql数据库异常:Public Key Retrieval is not allowed
    java8的时间段比较处理工具类TimeUtils
    MAVEN最常用的远程仓库
    maven的settings.xml配置阿里云中央仓库
    idea如何将java程序打包成exe可执行文件
    FakerUtil
    Golang内存逃逸是什么?怎么避免内存逃逸?
    10个高效Linux技巧及Vim命令对比[转]
    进程间8种通信方式详解
    基于openresty的URL 断路器/熔断器 -- URL-fuse
  • 原文地址:https://www.cnblogs.com/xbblogs/p/8487623.html
Copyright © 2011-2022 走看看