什么是OpenResty
openresty就是一个功能比较全的应用服务器,是基于标准的nginx核心,可以扩展很多第三方模块,是中国人章亦春发起,反正不管大小厂子都会有它的深度用户,web开发人员可以使用lua编程语言,对核心以及各种c模块进行编程,可以利用openresty快速搭建超1万并发高性能web应用系统。
这个openresty最早是雅虎中国的一个公司项目,基于Perl和Haskell实现,年开始开源,后来章亦春大佬加入淘宝后进行了彻底的设计和重写,这算二代openresty,一般称为ngx_openresty,基于nginx和lua进行开发
为啥叫这个名字,是因为最早为了顺应OpenAPI的潮流,后来基于ngx_openresty实现web服务和应用的意思,有了openrety,nginx不仅仅就是个代理,通过丰富的模块,可以成为功能全面的应用服务器了。
openresty用到了lua,lua又是什么?是一门简洁,优雅的编程语言,是年诞生于巴西的三位研究院手中,lua在葡萄牙语中意思是美丽的月亮。
lua可以嵌入其他应用程序且可以扩展的轻量级脚本语言,在很多领域例如游戏开发、分布式应用、图像处理等都有广泛的应用
至于Lua有很多特性,还得单独说,感兴趣的朋友可以专门去学习一下Lua,搭建一个lua环境、选择一个lua编辑器,编写一些简单lua文件,进行运行,看看和其他语言有什么区别。
前面也专门介绍了nginx相关的基础知识,这里再提一下nginx.conf这个配置文件
worker_process#表示工作进程的数量,一般设置为cpu的核数worker_connections#表示每个工作进程的最大连接数server{}#块定义了虚拟主机listen#监听端口server_name#监听域名location{}#是用来为匹配的URI进行配置,URI即语法中的“/uri/”location/{}#匹配任何查询,因为所有请求都以/开头root#指定对应uri的资源查找路径,这里html为相对路径,完整路径写上自己页面所在位置index#指定首页index文件的名称,可以配置多个,以空格分开。如有多个,按配置顺序查找。
实际例子中,nginx监听80端口,域名为localhost,根路径是html文件夹,自己安装的位置不同,可以自定义,index文件默认为index.html,index.htm
再说说,多个location配置,匹配顺序是如何的
首先精确匹配=然后是前缀匹配^~再是正则匹配,最后是通用/匹配,实际情况在自己多试试就知道
这里说说禁止访问某个目录的写法
location~*\.(txt
doc)${root/data/