如果你是RHEL可以使用下面的方法。否则请参考http://openresty.org/cn/installation.html
RHEL
你可以在你的 RHEL 系统中添加 openresty
仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update
命令)。添加仓库,运行下面的命令(对于 RHEL 8 或以上版本,应将下面的 yum
都替换成 dnf
):
第一步:
wget https://openresty.org/package/rhel/openresty.repo
sudo mv openresty.repo /etc/yum.repos.d/
第二步:
sudo yum check-update
添加了包仓库之后就可以像下面这样安装软件包,比如 openresty
:
第三步:
sudo yum install -y openresty
如果你想安装命令行工具 resty
,那么可以像下面这样安装 openresty-resty
包:
sudo yum install -y openresty-resty
命令行工具 opm
在 openresty-opm
包里,而 restydoc
工具在 openresty-doc
包里头。
列出所有 openresty
仓库里头的软件包:
sudo yum --disablerepo="*" --enablerepo="openresty" list available
我们的包仓库中有某些包,比如 perl-Test-Nginx
和 perl-Lemplate
,依赖开启一些可选的 RHEL 标准包仓库。比如 在 RHEL 6 和 RHEL 7 上,需要启用 RHEL 官方的 Optional RPM 包仓库。在 RHEL 7 上可以运行这条命令:
sudo subscription-manager repos --enable rhel-7-server-optional-rpms
在 RHEL 6 上则是这样的:
sudo subscription-manager repos --enable rhel-6-server-optional-rpms
而在 RHEL 8 上则需要开启 RHEL 官方的 CodeReady 仓库:
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
在 OpenResty RPM 包 页面能看到这些包更多的细节。
请注意在 RHEL 8 上面缺少 perl-Lemplate
这个 RPM 包,这是因为 RHEL 8 相比 RHEL 7 从其标准仓库中移除了 perl-Template-Toolkit
这样的 Perl 模块包。
对于 RHEL 8 及更新版本,我们只需要将上面的 yum
命令都替换成 dnf
即可。
二、使用openresty
准备目录布局
我们首先为实验创建一个单独的目录。您可以使用任意目录。
mkdir work
cd work
mkdir logs/ conf/
请注意,我们还创建了logs/
用于记录文件和conf/
配置文件的目录。
准备nginx.conf配置文件
创建一个简单的纯文本文件,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_block {
ngx.say("<p>hello, world</p>")
}
}
}
}
如果您熟悉Nginx的配置,那么您应该会非常熟悉。无论如何,OpenResty只是通过插件模块实现的Nginx的增强版本 。您可以利用Nginx世界中所有现有的东西。
启动Nginx服务器
假设您已将OpenResty安装到/usr/local/openresty
(这是默认设置),我们将在环境中提供OpenResty安装的nginx
可执行文件:PATH
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH
然后,我们以这种方式使用配置文件启动nginx服务器:
nginx -p `pwd`/ -c conf/nginx.conf
或者是
nginx -p $PWD
错误消息将发送到stderr设备或logs/error.log
当前工作目录中的默认错误日志文件。
若是我们修改了conf/nginx.conf
的内容,想要显示修改之后的信息,那么我们需要这样做:
我们通过向nginx主进程发送 HU````P
信号来重新加载服务器。
kill -HUP `cat logs/nginx.pid` (注意这不是顿号或者逗号,而是位于电脑键盘左上角处的符号)
主进程的进程 ID 存储在这个 nginx.pid 文件中。
然后,再重新发送http请求
curl http://localhost:8080/
访问我们的HelloWorld Web服务
关闭本机的防火墙
systemctl stop firewalld
我们可以使用curl来访问表示HelloWorld的新Web服务:
curl http://localhost:8080/
如果一切正常,我们应该得到输出
<p>hello, world</p>
您一定可以将自己喜欢的Web浏览器指向该位置http://localhost:8080/
。