zoukankan      html  css  js  c++  java
  • 搭建openresty需要注意到的地方

    openresty的完整包放在百度云盘linux目录下

    一键安装openresty

    ./install.sh

    安装好后,修改nginx.conf配置文件

    cd /usr/local/openresty/nginx/conf/nginx.conf

    server_name   auth_api.com

    cd /usr/local/openresty/lualib/ttq

    修改lua脚本配置文件

    vim ini.lua,注意:redis需要设置密码,不然不能访问

    还需要把purview.sql两个表导入指定数据库

    导入参考数据:

    INSERT INTO `ttq_appid_list` VALUES ('1', 'TTQ_iL9mT5lbtl17w5M5', 'xmcsX3fmwznd27Zq3W9h', '1466488625');

    INSERT INTO `ttq_appid_white_list` VALUES ('1', 'TTQ_iL9mT5lbtl17w5M5', '127.0.0.1');

    在yaf中应用的时候需要修改配置文件:

    application_dev.ini

    authenticator.url="http://auth.api.herry_a.com:8080"

    <?php
    /*
    格式化输出
    */
    function p($arr) {
        echo "<pre>";
        print_r($arr);die;
    }
    /**
     * 获取用户IP地址
     *
     * @return mixed
     */
    function getRemoteAddr() {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && (!isset($_SERVER['REMOTE_ADDR']) || preg_match('/^127..*/i', trim($_SERVER['REMOTE_ADDR'])) || preg_match('/^172.16.*/i', trim($_SERVER['REMOTE_ADDR'])) || preg_match('/^192.168.*/i', trim($_SERVER['REMOTE_ADDR'])) || preg_match('/^10..*/i', trim($_SERVER['REMOTE_ADDR']))))
        {
            if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ','))
            {
                $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    
                return $ips[0];
            }
            else
                return $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
    
        return $_SERVER['REMOTE_ADDR'];
    }
    
    function object2array(&$object) {
        return json_decode(json_encode($object), true);
    }
    
    /**
     * @param        $url
     * @param string $method
     * @param null   $postFields
     * @param null   $header
     *
     * @return mixed
     * @throws Exception
     */
    function curl($url, $method = 'GET', $postFields = null, $header = null, $saveCookie=FALSE, $useCookie=FALSE, $cookieFile=null) {
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($ch, CURLOPT_FAILONERROR, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);    
        if ( !is_null($cookieFile)) {
            if ( $saveCookie ) {
                curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
            } elseif ( $useCookie ) {
                curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
            }
            if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https")         {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            }
        }
        switch ($method)
        {
            case 'POST':
                curl_setopt($ch, CURLOPT_POST, true);
                if (!empty($postFields))
                {
                    if (is_array($postFields) || is_object($postFields))
                    {
                        if (is_object($postFields))
                            $postFields = object2array($postFields);
                        $postBodyString = "";
                        $postMultipart = false;
                        foreach ($postFields as $k => $v)
                        {
                            if ("@" != substr($v, 0, 1))
                            { //判断是不是文件上传
                                $postBodyString .= "$k=" . urlencode($v) . "&";
                            }
                            else
                            { //文件上传用multipart/form-data,否则用www-form-urlencoded
                                $postMultipart = true;
                            }
                        }
                        unset($k, $v);
                        if ($postMultipart)
                        {
                            curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
                        }
                        else
                        {
                            curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString, 0, -1));
                        }
                    }
                    else
                    {
                        curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
                    }
    
                }
                break;
            default:
                if (!empty($postFields) && is_array($postFields))
                    $url .= (strpos($url, '?') === false ? '?' : '&') . http_build_query($postFields);
                break;
        }
        curl_setopt($ch, CURLOPT_URL, $url);
    
        if (!empty($header) && is_array($header))
        {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }
        $response = curl_exec($ch);
        if (curl_errno($ch))
        {
            throw new Exception(curl_error($ch), 0);
        }
        curl_close($ch);
    
        return $response;
    }
    
    
    $url = "http://auth.api.herry_a.com:8080";
    $clientIP = getRemoteAddr();
    $postFields = array(
        'appid' => $_GET['appid'],
        'appkey'=> $_GET['appkey'],
        'ip' => $clientIP      //测试模拟ip 真实换成$clientIP
    );
    $headers = array(
        'Content-Type' => 'application/x-www-form-urlencoded',
        'charset' => 'utf-8'
    );
    $auth = curl($url,'POST', $postFields, $headers);
    $authArr=json_decode($auth,true);
    p($authArr);
    
    ?>
    View Code
  • 相关阅读:
    转 Java中wait和sleep方法的区别
    linux 中常用安装配置
    php 图片压缩
    利用 jQuery-photoClip插件 实现移动端裁剪功能并以Blob对象上传
    phpStudy for Linux (lnmp+lamp一键安装包)
    js图片实现延迟加载
    杂项
    正则表达式
    sublime text 3 中 SFTP插件 的 配置
    如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
  • 原文地址:https://www.cnblogs.com/herry52/p/5997123.html
Copyright © 2011-2022 走看看