搭建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); ?>
搭建openresty需要注意到的地方的更多相关文章
- 搭建OpenResty(Nginx+Lua)
这篇文章是一个多月前写的,当时之所以搭建这个是为了最大程度上发挥Nginx的高并发效率(主要是结合lua脚本),参考的话,主要参考张开涛先生写的跟开涛学Nginx+lua系列文章,地址为:https: ...
- 使用docker搭建OpenResty开发环境
Dockerfile文件: FROM centos:latest RUN yum install -y pcre-devel openssl-devel gcc curl wget perl make ...
- 搜索引擎Solr系列(一): Solr6.2.1环境搭建
一:Solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通 ...
- ionic环境搭建和安装
1. 安装node环境 nodeJs环境的安装很简单,去官网下载最新版的NodeJs直接安装即可. Node官网: https://nodejs.org/ 安装完成后配置环境变量,计算机->属性 ...
- openresty+lua劫持请求,有点意思
0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了一些邪恶的东西:反代既然是所有流量走我的服务器,那我是不是能够在中途做些手脚,达到一些有趣的目的. op ...
- 在linux服务器上搭建nvidia-docker环境
docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要的环境,各个环境之间彼此隔离开,好像一个 ...
- solr 6.2.1环境搭建
一:Solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过 ...
- Openresty + nginx-upload-module支持文件上传
0. 说明 这种方式其实复杂,麻烦!建议通过这个方式搭建Openresty文件上传和下载服务器:http://www.cnblogs.com/lujiango/p/9056680.html 1. 包下 ...
- Oracle 2套rac集群指向单机多实例的复制搭建
Oracle 2套rac集群指向单机多实例的复制搭建 由于环境限制,现在需要把2套rac集群通过dg复制指向远端的单机多实例上面. rac指向第一个实例的前面已经有文档 这里直接添加第二个实例的复制搭 ...
随机推荐
- Vuejs 基础与语法
Vue 实例 创建第一个实例 {{}} 被称之为插值表达式.可以用来进行文本插值. <!DOCTYPE html> <html lang="en"> < ...
- 最短路径算法(II)
什么??你问我为什么不在一篇文章写完所有方法?? Hmm…其实我是想的,但是博皮的加载速度再带上文章超长图片超多的话… 可能这辈子都打不开了吧… 上接https://www.cnblogs.com/U ...
- ubuntu ssh配置
Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over ...
- mweb test
目录 Markdown syntax guide and writing on MWeb Philosophy Notice Headers This is an <h1> tag Thi ...
- tomcat 运行机制
先不去关技术细节,对一个servlet容器,我觉得它首先要做以下事情:1:实现Servlet api规范.这是最基础的一个实现,servlet api大部分都是接口规范.如request.respon ...
- python学习笔记01:安装python
下载python: 从从https://www.python.org/downloads/下载python,根据操作系统的不同,选择不同的版本下载.注意:linux系统大多预装了python,可以直接 ...
- 关于JS里面写JAVA代码的问题
最近做项目需要在JS脚本里面调用一个JAVA的函数得到数据,在网上查了很久,发现JS脚本里面不能写JAVA函数.只能把JS脚本里面的代码写进JSP文件里面的<script>标签内,然后写J ...
- 3dContactPointAnnotationTool开发日志(十八)
今天实现了tab效果,按tab键可以在status面板的各个输入框内来回切换,参考Unity3D - UGUI实现Tab键切换输入框.按钮(按Tab键切换高亮显示的UI)
- vue服务端渲染简单入门实例
想到要学习vue-ssr的同学,自不必多说,一定是熟悉了vue,并且多多少少做过几个项目.然后学习vue服务端渲染无非解决首屏渲染的白屏问题以及SEO友好. 话不多说,笔者也是研究多日才搞明白这个服务 ...
- QObject类 moc处理后代码
QObject在QT中是所有类的基类,经过MOC处理后代码如下 之所以贴出这段代码,是因为很多流程追踪到最后一些关键性函数都是出自这个类 源码 4.8.6 MOC版本 63 /************ ...