Chaya大数据架构综合实践课程学习 ——— Openresty安装
使用环境:VMWare 15.5 Centos 7 虚拟机
MobaXterm_Portable_v22.0
一、下载Openresty相关依赖
##下载Openresty依赖
yum install readline-devel pcre-devel openssl-devel gcc##下载Openresty仓库yum源
wget https://openresty.org/package/centos/openresty.repo##移动到yum源
mv openresty.repo /etc/yum.repos.d/##更新yum源
yum check-update##查看软件可用版本
yum list openresty --showduplicates##安装Openresty源
yum install -y openresty##测试安装正确
openresty -v##默认安装位置
##/usr/local/openresty
二、Nginx相关配置
编写nginx.conf配置文件 位置:/opt/openresty/conf/nginx.conf(需要手动创建)
ps: 可直接使用下方代码一步创建,此截图看起来比较繁琐但是是谨慎的看看当前文件夹是否有其他文件避免后面步骤出线错误
手动创建nginx.conf代码
touch /opt/openresty/conf/nginx.conf
nginx.conf内容如下:
#nginx.conf
#nginx
user root root;#work进程数,
worker_processes 4;# 错误日志路径,和日志级别
#需要先手动创建error.log文件,不然后面执行命令时会报错
error_log /opt/openresty/logs/nginx_error.log error; # nginx pid文件
pid /opt/openresty/logs/nginx.pid;# 单个worker最大打开的文件描述符个数
worker_rlimit_nofile 65535;events
{#使用epoll模型use epoll;#单个worker进程允许的最多连接数worker_connections 65535;
}http
{#mime.types 和当前文件在同一个目录下,要先提前创建,不然报错显示没有此文件include mime.types;default_type application/octet-stream;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;underscores_in_headers on;log_format main escape=json '{"timestamp": "$time_local",''"remote_addr": "$remote_addr",''"referer": "$http_referer",''"request": "$request",''"statu": "$status",''"byte": "$body_bytes_sent",''"agen": "$http_user_agent",''"x_forwarde": "$http_x_forwarded_for",''"up_addr": "$upstream_addr",''"up_host": "$upstream_http_host",''"up_resp_time": "$upstream_response_time",''"request_time": "$request_time"}'; #定义我们数据采集的日志格式 log_format format_userlogs '$logdata';open_log_file_cache max=1000 inactive=60s;keepalive_timeout 0;client_max_body_size 20m;include /opt/openresty/conf/vhost/*.conf;
}
记得要先创建此文件中的error.log和mime.types以及nginx.pid文件,不然后面执行命令时会报错显示没有此文件
touch /opt/openresty/logs/nginx_error.log
touch /opt/openresty/conf/mime.types
touch /opt/openresty/logs/nginx.pid
如果后面重启openresty出现了问题,请记得子nginx.pid中输入nginx的端口号,这里设置为8802(也就是仅仅在nginx.pid中输入:8802)
三、服务应用配置
用户自定义配置文件userlogs.conf 位置:/opt/openresty/conf/vhost/userlogs.conf(也是需要自己去创建此文件)
touch /opt/openresty/conf/vhost/userlogs.conf
编写userlogs.conf内容:
#userlogs.conf
server {listen 8802 default_server;lua_need_request_body on;client_max_body_size 5M;client_body_buffer_size 5M;location /data/userlogs {set $logdata '';content_by_lua_block {-- cjson模块local cjson = require "cjson"-- 读取请求体信息ngx.req.read_body()-- 请求体信息存放到 body_data变量中local body_data = ngx.req.get_body_data()-- 如果请求体为空,返回错误if body_data == nil thenngx.say([[{"code":500,"msg":"req body nil"}]])return end-- 定义当前时间local current_time = ngx.now()*1000-- 定义一个字典(存放请求参数)local data={}data["ctime"] = current_time-- 将增加的信息编码为jsonlocal meta = cjson.encode(data)-- 将body_data数据进行编码处理(若需要使用节点信息则增加meta数据)--local req = ngx.encode_base64(meta) .. "-" .. ngx.unescape_uri(body_data)local req = ngx.unescape_uri(body_data)-- 将数据赋值给我们定义的nginx变量logdata(定义的log_format就使用)ngx.var.logdata = req ngx.say([[{"code":200,"msg":"ok"}]])}access_log logs/userlogs.log format_userlogs;}
}
四、Nginx服务启动
##测试配置格式正确 -p 指定openresty的配置目录
openresty -p /opt/openresty/ -t##服务启动 -p 指定openresty的配置目录
openresty -p /opt/openresty/##服务启动测试
##端口查看
netstat -antp |grep 8802
或者
lsof -i:8802##进程查看
ps aux | grep nginx | grep -v grep##服务停止
openresty -p /opt/openresty/ -s stop##在服务未停止时重启
openresty -p /opt/openresty/ -s reload
我的效果图:
五、Hello World界面尝试
如果已经完成了上面的安装步骤,可以直接进行下方链接的 Hello World实例 进行练习
OpenResty 使用介绍 | 菜鸟教程 (runoob.com)https://www.runoob.com/w3cnote/openresty-intro.html注意: 由于我使用的是虚拟机,所以不能直接通过本地win系统的浏览器输入http://localhost:9000/ 查看虚拟机的的内容。如果想要通过本机浏览器查看虚拟机OpenResty的页面内容,在本地浏览器中输入:http://[虚拟机的IP]:9000/
Chaya大数据架构综合实践课程学习 ——— Openresty安装相关推荐
- 奈学教育《大数据架构师》课程大纲
深度剖析了各个基础技术的源码(ZooKeeper.Hive.Spark.Flink.Hadoop等),对这些基础技 术知识动态的排列组合,形成大数据全局架构观,并深入讲述大数据全局架构设计的方方面面, ...
- 干货 | 携程机票大数据架构最佳实践
本文转载自 携程技术中心(ctriptech) 公众号,本文PPT请点击下面 阅读原文 获取 作者简介 许鹏,携程机票大数据基础平台Leader,负责平台的构建和运维.深度掌握各种大数据开源产品,如S ...
- 【企业架构设计实战】大数据架构最佳实践
目录 数据架构概述 什么是数据? 什么是数据架构
- 朋友面试大数据架构师岗,碰了一鼻子灰后发现…
前段时间,朋友出去面试,还没聊几句面试官就开始直奔主题: "目前的我们的开发遇到了一些困难:过去是烟囱式的开发模式,各个项目组之间的数据资源不互通,也分散了很多小的数仓,可能面临开发规范不一 ...
- 再见了数仓开发!我选有钱有话语权的大数据架构师!
前段时间,朋友出去面试,还没聊几句面试官就开始直奔主题: "目前的我们的开发遇到了一些困难:过去是烟囱式的开发模式,各个项目组之间的数据资源不互通,也分散了很多小的数仓,可能面临开发规范不一 ...
- 大数据理论与实践5 分布式计算框架MapReduce和Spark
MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...
- 大数据架构师指南 pdf_ZTE十年大数据架构师教你:高效搭建企业IT系统架构,超越CTO...
前言 如果你是一名IT工程师,首席技术官( CTO)希望你在一周内提交一份公司未来IT系统基础架构的初步建议;如果你是一位IT营销人员,客户需要你在一周内向他汇报未来大数据系统的大致技术方向... . ...
- 大数据理论与实践6 分布式ETL工具Sqoop
ETL是指数据收集层,指的是数据抽取(Extract).转换(Transform).加载(Load),在真正的大数据工作中,很大的工作量都在做这一块的内容. Sqoop简介 只要用于在Hadoop和关 ...
- 从入门到进阶!当下火爆的大数据技术及算法怎么还能不知道 一起来学习互联网巨头的大数据架构实践!
大数据被称为新时代的黄金和石油,相关技术发展迅猛,所应用的行业也非常广泛,从传统行业如医疗.教育.金融.旅游,到新兴产业如电商.计算广告.可穿戴设备.机器人等.大数据技术更是国家科技发展和智慧城市建设 ...
最新文章
- 以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题
- 服务发现对比:Zookeeper vs. etcd vs. Consul
- linux运行炉石传说,使用Lutris在Linux上玩炉石传说
- 这款 网络排查 神器,运维用了都说好,赶紧收藏~
- 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...
- easyui datagrid
- java整形怎么转字符串型_java整型与字符串互转
- java手机号判断运营商_用Java对手机号所属运营商进行判断
- 日语python怎么说_python+Mecab,一次性学会日语分词
- C++ Templates 中的一个例子
- Android内核开发:在源码树中添加新的app应用
- 多智能体MAPPO代码环境配置以及代码讲解
- java 方法注释_Java注释,java方法注释详解
- 计算机化验中红细胞的测量程序,血液常规检查检验程序.doc
- Dreammaker水疗流行的Eclipse从他们的加州系列,审议
- uniapp中使用网页录音并上传声音文件(发语音)——js-audio-recorder的使用【伸手党福利】
- 小菊的语义分割1——语义分割科普Semantic Segmentation
- 为黑客打工能挣多少?月薪最高达2万美元
- TypeError错误解决方案
- c语言求婚代码大全,程序员表白教程,这些代码用过的都成功了!