nginx是耳熟能详的http服务器,被广泛的用于http服务、反向代理、负载均衡等场景。
但有时候我们需要其完成一些更加复杂的转发功能,此时则需要为nginx加入一些模块,而由于这些模块大多都不是nginx默认提供的,所以安装起来并不小白。
OpenResty封装了nginx, 通过汇聚各种设计精良的nginx模块(主要由 OpenResty 团队自主开发),将nginx变成了一更加强大、通用的Web应用平台。
安装
以macos为例,其它系统请参考官方文档的安装教程。
如果我们的电脑中此前使用非brew方式安装了nginx,则需要将其删除:
# which nginx
/usr/local/bin/nginx
# rm -rf /usr/local/bin/nginx
如果你在意nginx安装文件占用的一些空间,还需要删除/usr/local/etc/nginx
以及/usr/local/Cellar/nginx/<对应版本号>
文件夹。
然后使用以下命令安装OpenResty:
brew install openresty/brew/openresty
如果以前使用了brew安装了nginx,则还需要执行如下命令:
brew untap homebrew/nginx
此时,我们将在/usr/local/opt
文件夹中发现新增了openresty
文件夹。
环境变量
openresty
文件夹中包括了nginx
文件夹,预在全局的shell中使用nginx命令,则还需要将nginx
文件夹中的sbin
文件夹加入到环境变量:
# export PATH=/usr/local/opt/openresty/nginx/sbin:$PATH
# echo $PATH
若要下次启动shell时自动生效,则还需要执行如下命令:
# echo "export PATH=/usr/local/opt/openresty/nginx/sbin:$PATH" >> ~/.bash_profile
使用
此时我们便可以如往常一样使用nginx功能了。
# nginx -T
# nginx
示例
在进行nginx的配置时,可以使用echo
来输出变量的值,这对调试nginx的配置文件非常重要:
server {
listen 6006;
server_name localhost;
location / {
# 定制content-type
default_type text/html;
# 输出当前时间
echo $date_local;
}
}
则此时访问http://localhost:6006,将得到变量$date_local的值:
其它
OpenResty封装了大量的组件,同时提供一款名为OPM的组件管理器。希望有一天能用上它们。
总结
OpenResty将nginx武装的的更强大。当nginx不能很好的满足我们的新需求时,不防来OpenResty找找看。
后记:freebsd的ports为nginx提供了安装echo等第三方插件的选项。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。