openresty的部署、nginx高速缓存的配置、nginx日志的可视化



一、openresty

1.OpenResty简介

OpenResty官网 http://openresty.org/cn/
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
OpenResty的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型(借鉴),不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应
在这里插入图片描述

2.OpenResty的技术

Nginx: 一个免费的、开源的、高性能的 HTTP 服务器和反向代理,也是一个电子邮件(IMAP/POP3/SMTP)代理服务器。有关Nginx的介绍,可以查看这篇《Nginx架构原理科普》。
Lua: 一种轻量、小巧、可移植、快速的脚本语言;LuaJIT即时编译器会将频繁执行的Lua代码编译成本地机器码交给CPU直接执行,执行效率更高,OpenResty会默认启用LuaJIT。

3.OpenResty的优势

首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。
借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。
而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒杀、动态服务、单品页、列表页等都在使用Nginx+Lua架构,其他公司如淘宝、去哪儿网等。

4.openresty部署

openresty监听80端口,所以首先停止nginx服务,避免端口冲突
[root@server1 ~]# nginx -s stop
解压文件
[root@server1 ~]# tar xf openresty-1.21.4.1.tar.gz
[root@server1 ~]# cd openresty-1.21.4.1/
编译三部曲:和nginx基本一致,路径改变,模块参数一致
[root@server1 openresty-1.21.4.1]# ./configure --prefix=/usr/local/openresty --with-http_ssl_module --with-http_stub_status_module
[root@server1 openresty-1.21.4.1]# make
[root@server1 openresty-1.21.4.1]# make install
配置文件(复制nginx配置好的文件即可)
[root@server1 openresty-1.21.4.1]# cd /usr/local/openresty/nginx
[root@server1 nginx]# ls
conf html logs sbin
[root@server1 nginx]# cd conf/
复制nginx中配置好文件至当前目录
[root@server1 conf]# cp /usr/local/nginx/conf/nginx.conf .
复制nginx中配置好的https证书至当前目录
[root@server1 conf]# cp /usr/local/nginx/conf/cert.pem .
检测语法
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
启动openresty
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx
测试
浏览器访问:http://192.168.117.11/
在这里插入图片描述

二、nginx配置高效缓存:memcache

在这里插入图片描述
fastcgi和sapi提供连接端口

拷贝测试页面
[root@server1 html]# pwd
/usr/local/openresty/nginx/html
[root@server1 html]# cp /usr/local/nginx/html/index.php .
[root@server1 html]# cp /usr/local/nginx/html/example.php .

[root@server1 conf]# pwd
/usr/local/openresty/nginx/conf

[root@server1 conf]# vim nginx.conf      ##截图见下面
upstream memcache {                      ##负载均衡器,负载均衡memcache的缓存
        server 127.0.0.1:11211;          ##如果memcache在远程,写ip地址即可,后面可以多添加几台
        keepalive 512;                   ##保持512个不立即关闭的连接用于提升性能
        }
location /memc {                         ##虚拟主机中定义,访问路径
        internal;                        ##表示只允许内部调用
        memc_connect_timeout 100ms;      ## memc连接时间
        memc_send_timeout 100ms;         ## memc发送时间
        memc_read_timeout 100ms;         ## memc超时时间
        set $memc_key $query_string;     ##表示内置的$query_string来作为key
        set $memc_exptime 300;           ##表示缓存失效时间
        memc_pass memcache;              ##调用中有/memc ,就会通过memc_pass交给memcache负载均衡器
        }

location ~ \.php$ {
            set $key $uri$args;                 ##
            srcache_fetch GET /memc $key;   ##首先访问memcache,查看有没有需要的页面,有则直接使用即可
            srcache_store PUT /memc $key;   ##如果get不到,请求到达9000端口,返回值是200的正确值,会通过srcache模块PUT保存,后续的访问就可以调用了

            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx  -t      ##语法检测
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx  -s reload    ##重启服务

测试:server4进行(见第三张图片)

在这里插入图片描述在这里插入图片描述
测试:
真机中查看每秒的转速更快
在这里插入图片描述

三、nginx日志可视化

切换回nginx
[root@server1 ~]# /usr/local/openresty/nginx/sbin/nginx -s stop
[root@server1 ~]# nginx ##开启nginx
安装依赖性:开发包版本需注意
[root@server1 ~]# yum install -y GeoIP-devel-1.5.0-13.el7.x86_64.rpm
[root@server1 goaccess-1.4]# yum install ncurses-devel
解压、编译
[root@server1 ~]# tar xf goaccess-1.4.tar.gz
[root@server1 ~]# cd goaccess-1.4/
[root@server1 goaccess-1.4]# ./configure --enable-utf8 --enable-geoip=legacy
[root@server1 goaccess-1.4]# make
[root@server1 goaccess-1.4]# make install
启动:
!!由于设置的目录在/usr/local/nginx/下,所以开启的nginx不能是/usr/local/openresty/nginx/sbin/nginx
[root@server1 ~]# goaccess /usr/local/nginx/logs/access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html &
-o表示输出;&打入后台;goaccess观测日志变更
测试:
浏览器访问:http://192.168.117.11/report.html
在这里插入图片描述


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值