OpenResty 最佳实践学习--安装和helloworld(1)

2024-05-19 00:18

本文主要是介绍OpenResty 最佳实践学习--安装和helloworld(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:简介

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 等都进行一致的高性能响应。

来自 OpenResty®官网


总结和拓展:
1.OpenResty 是 Nginx 与 Lua 的结合;
2.OpenResty 是多进程模式,会有一个 master 进程和多个 worker 进程。Master 进程管理 worker 进程,向各 worker 进程发送信号,监控 work 进程状态;
3.OpenResty 是异步非阻塞 ; 怎样理解阻塞非阻塞与同步异步的区别?知乎
4.子查询:OpenResty 中有三种方式发起子请求:capture、exec、redirect;
5.OpenResty 缓存机制。

二:安装

下载和安装在Openresty的官网都有介绍,但是这里还是要进行说明一下:下载和安装
我的环境是 Linux CentOs 32位。

1.下载安装包

我下载的是最新的Openresty版本, openresty-1.11.2.5.tar.gz,上传到服务器,进行解压,命令如下:

tar -xzvf openresty-VERSION.tar.gz

示例中的 VERSION替换成 OpenResty的版本号, 比如 1.11.2.5。

2.安装前的准备
yum install readline-devel pcre-devel openssl-devel gcc

yum在线安装需要收费,如果yum不可以使用,使用本地yum源安装,具体配置见 Linux学习——yum学习和光盘yum源搭建

3.安装

在解压完之后,进行安装:

tar -xzvf openresty-VERSION.tar.gz
cd openresty-VERSION/
./configure
make
sudo make install

示例中的 VERSION替换成 OpenResty的版本号, 比如 1.11.2.5。

默认, openresty 程序会被安装到/usr/local/openresty目录。

三:Hello World
1.第一种常规配置方案

如果之前有使用过nginx,那么这个配置和nginx很基本一致!
首先在新建两个目录,然后在conf/下新建nginx.conf ,我这里当做测试用,命令如下

mkdir openresty
cd openresty/
mkdir logs/ conf/
cd conftouch nginx.conf
vim nginx.conf

在nginx.conf 写

worker_processes  1;
error_log logs/error.log;
events {worker_connections 1024;
}
http {server {listen 8080;location / {default_type text/html;content_by_lua 'ngx.say("<p>hello, world</p>")';}}
}

然后启动openresty,启动命令和nginx一致。

/usr/local/openresty/nginx/sbin/nginx -c /dufy/openresty/conf/nginx.conf
#启动后查看一下服务
ps -ef | grep  nginx 

在服务器使用 curl http://localhost:8080/,输出

curl http://localhost:8080/
#<p>hello, world</p>

获取直接在浏览器访问,我的访问地址为 http://192.168.1.111:8080/,页面显示hello, world!

2.第二种Lua配置

在conf下面新建nginx.conf 和 lua.conf ,命令如下

touch nginx.conf  lua.conf

在lua.conf 中写内容:

#lua.conf
server {listen 8080;location /lua {default_type text/html;content_by_lua 'ngx.say("<p>hello, world Lua!</p>")';}}

在nginx.conf 中写内容,并且需要添加 lua模块路径:

worker_processes  1;
error_log logs/error.log;
events {worker_connections 1024;
}
http {#lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找  
lua_package_path "/usr/servers/lualib/?.lua;;";  #lua 模块  
lua_package_cpath "/usr/servers/lualib/?.so;;";  #c模块 
include lua.conf #lua.conf和nginx.conf 在同一目录下
}

启动openrestyrest,然后访问:

/usr/local/openresty/nginx/sbin/nginx -c /dufy/openresty/conf/nginx.conf
#启动后查看一下服务
ps -ef | grep  nginx curl http://localhost:8080/lua
#<p>hello, world Lua!</p>

获取直接在浏览器访问,我的访问地址为 http://192.168.1.111:8080/,页面显示hello, world Lua!

四:参考文章

openresty官网

第一章 安装OpenResty(Nginx+Lua)开发环境



如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!


欢迎访问我的csdn博客,我们一同成长!

不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

博客首页http://blog.csdn.net/u010648555

这篇关于OpenResty 最佳实践学习--安装和helloworld(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995709

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源