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); ?>

搭建openresty需要注意到的地方的更多相关文章

  1. 搭建OpenResty(Nginx+Lua)

    这篇文章是一个多月前写的,当时之所以搭建这个是为了最大程度上发挥Nginx的高并发效率(主要是结合lua脚本),参考的话,主要参考张开涛先生写的跟开涛学Nginx+lua系列文章,地址为:https: ...

  2. 使用docker搭建OpenResty开发环境

    Dockerfile文件: FROM centos:latest RUN yum install -y pcre-devel openssl-devel gcc curl wget perl make ...

  3. 搜索引擎Solr系列(一): Solr6.2.1环境搭建

     一:Solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通 ...

  4. ionic环境搭建和安装

    1. 安装node环境 nodeJs环境的安装很简单,去官网下载最新版的NodeJs直接安装即可. Node官网: https://nodejs.org/ 安装完成后配置环境变量,计算机->属性 ...

  5. openresty+lua劫持请求,有点意思

    0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了一些邪恶的东西:反代既然是所有流量走我的服务器,那我是不是能够在中途做些手脚,达到一些有趣的目的. op ...

  6. 在linux服务器上搭建nvidia-docker环境

    docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要的环境,各个环境之间彼此隔离开,好像一个 ...

  7. solr 6.2.1环境搭建

    一:Solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过 ...

  8. Openresty + nginx-upload-module支持文件上传

    0. 说明 这种方式其实复杂,麻烦!建议通过这个方式搭建Openresty文件上传和下载服务器:http://www.cnblogs.com/lujiango/p/9056680.html 1. 包下 ...

  9. Oracle 2套rac集群指向单机多实例的复制搭建

    Oracle 2套rac集群指向单机多实例的复制搭建 由于环境限制,现在需要把2套rac集群通过dg复制指向远端的单机多实例上面. rac指向第一个实例的前面已经有文档 这里直接添加第二个实例的复制搭 ...

随机推荐

  1. Unity Lighting - The Precompute Process 预计算过程(二)

      The Precompute Process 预计算过程 In Unity, precomputed lighting is calculated in the background - eith ...

  2. 微信小程序navigator跳转失效

    在编写小程序时遇到一个问题:使用 <navigator url='/pages/lists/index'>...</navigator>进行跳转没有反应.控制台也没有报错,ap ...

  3. Paper Reading - Learning to Evaluate Image Captioning ( CVPR 2018 ) ★

    Link of the Paper: https://arxiv.org/abs/1806.06422 Innovations: The authors propose a novel learnin ...

  4. WCF:REST + Basic authentification + IIS

    近期一个项目中用到Restful WCF提供服务,但是需要验证机制,网上搜刮了一些,都是太复杂.FQ找到了一篇不错的文章分享一下. 原地址连接:http://vgolovchenko.wordpres ...

  5. GRU-CTC中文语音识别

    目录 基于keras的中文语音识别 音频文件特征提取 文本数据处理 数据格式处理 构建模型 模型训练及解码 aishell数据转化 该项目github地址 基于keras的中文语音识别 该项目实现了G ...

  6. APUE学习笔记3_文件IO

    APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...

  7. jquery取radio单选按钮

    // var strMess = '<%=Exchange() %>';//            if (strMess == "兑换成功") {//         ...

  8. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  9. HDU 3265/POJ 3832 Posters(扫描线+线段树)(2009 Asia Ningbo Regional)

    Description Ted has a new house with a huge window. In this big summer, Ted decides to decorate the ...

  10. 福大软工1816:Alpha(10/10)

    Alpha 冲刺 (10/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.和愈明.韫月一起对接 2 ...