一、前言
openresty也有nginx的路由功能,并且比nginx更全面,支持lua语言。
之前,本人想用nginx打印请求头(request_header)的日志,但是发现nginx只能打印请求体(request_body),死活没有找到怎么打印请求头;
网上的打印方法,都是用openresty的(需要lua)。
所以在此总结下openresty安装方法。
二、安装方法
1.先网上找一个压缩包,例如openresty-1.21.4.1.tar.gz
如果服务器联网了,那也可以用这个下载命令下载:
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
2.放到服务器某个目录下,例如/home/myuser/openresty-1.21.4.1.tar.gz
,然后运行命令解压:
tar -zxvf openresty-1.21.4.1.tar.gz
然后就可以得到/home/myuser/openresty-1.21.4.1
文件夹。
3.进入软件目录,执行命令:
cd openresty-1.21.4.1
./configure --prefix=/home/myuser/openresty
这个命令可以让openresty安装到指定路径/home/myuser/openresty
里。如果不加--prefix
就会默认安装到 /usr/local/openresty/
目录下。
一般,服务器上是多个用户的,安装到默认路径会没有权限执行,还是指定安装到自己的用户路径下合适。(例如myuser路径)
4.指定好安装路径后,继续执行命令安装:
make && make install
完成后,就可以看到/home/myuser/openresty
文件夹,如果没有报错就安装成功了。
5.配置文件在:
/home/myuser/openresty/nginx/conf/nginx.conf
6.启动命令等:
#启动
/home/myuser/openresty/nginx/sbin/nginx
#重启
/home/myuser/openresty/nginx/sbin/nginx -s reload
#关闭
/home/myuser/openresty/nginx/sbin/nginx -s stop
#检查是否启动
ps -ef |grep nginx
三、备注
1.当时遇到一个权限问题,就是执行这个命令是没有问题的:
#启动nginx
sudo /home/myuser/openresty/sbin/nginx
但是执行这个命令不行(安装后的实际目录)
,会报错需要管理员密码:
#启动nginx
sudo /home/myuser/openresty/nginx/sbin/nginx
感觉是因为管理员用户设置的权限,myuser用户执行sudo命令的路径有限制。
解决方法:
创建软连接:
#可以理解成在第2个参数的openresty文件夹下创建个sbin文件夹连接,进入这个sbin文件夹就相当于进入了第1个参数的路径里
ln -s /home/myuser/openresty/nginx/sbin /home/myuser/openresty/sbin
这样,就可以用第一个命令启动nginx了:sudo /home/myuser/openresty/sbin/nginx
2.同理,如果从nginx换成openresty后、前端文件的路径不一致,也可以创建软连接,模拟成路径一致的,这样改动小些。如下:
#之前本人的前端文件在第2个参数路径下,现在要放到第1个参数路径下、但是又想用第2个参数路径能访问到,就加了这个软连接
ln -s /home/myuser/openresty/nginx/html /home/myuser/openresty/html