centos安装OpenResty,入门简单使用

时间:2024-02-29 22:26:43

安装openresty

1.先安装依赖

 yum install pcre-devel openssl-devel gcc curl

 yum install readline-devel

 

2.下载安装包,根据版本号来

wget https://openresty.org/download/openresty-1.15.8.1.tar.gz

 

3.构建,解压下载的包,进入目录进行编译

(./configure最好把参数配齐,搭建4层负载均衡的时候,就需要ngx_stream_core_module模块,需要编译的时候添加--with-stream,使其支持stream代理,由于弄http的时候我没加,造成又重装了一次)

tar -xzvf openresty-1.15.8.1.tar.gz

cd openresty-1.15.8.1

./configure --with-stream \

 

4.编译

make

 

5.安装openresty

make install

默认安装在/usr/local/openresty目录

 

搭建简单http实例

1.创建一个单独的目录,在work下创建两个目录,log用来做日志输出,conf下边放置openresty配置

mkdir ~/work

cd ~/work

mkdir logs/ conf/

 

2.在conf/目录下创建nginx.conf文件,写入下边的内容(这个看上去就是nginx配置,http的配置,7层)

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>")

      }

    }

  }

}

 

3.配置PATH,用来启动openresty

配置PATH有4中方式,我参考了这种方式,感谢网友:

通过修改.bashrc文件:
vim ~/.bashrc 
在最后一行添上:
export PATH=/usr/local/mongodb/bin:$PATH
生效方法:(有以下两种)
(1)、关闭当前终端窗口,重新打开一个新终端窗口就能生效
(2)、输入“source ~/.bashrc”命令,立即生效
有效期限:永久有效
用户局限:仅对当前用户


4.启动,work目录下执行,错误消息将转到logs/error.log

nginx -p `pwd`/ -c conf/nginx.conf

 

5.访问,直接命令curl,或者用浏览器打开http://localhost:8080/,如果你是用虚拟机,把localhost换成外网ip,也要注意端口是否对外开放

curl http://localhost:8080/

 

搭建简单tcp实例(4层)

1.在之前的nginx.conf文件最后加入tcp配置

stream {
  upsteam dns {
    server 127.0.0.1:12345 max_fails=10 fail_timeout=20s;
    server 127.0.0.1:12346 max_fails=10 fail_timeout=20s;
  }

  server {
    listen 8000;
    proxy_timeout 60s;
    proxy_pass dns;
  }
}

proxy_timeout :连接超时时候(默认是60s,最开始我设置的3秒,而且我还是保持的一个交互的连接,就发现接下来客户端怎么向server端发命令都没反应了,其实这时候server端已经断开了链接)

fail_timeout和max_fails:负载均衡配置时的2个参数,这2个参数一起配合,来控制nginx怎样认为upstream中的某个server是失效的。当在fail_timeout的时间内,某个server连接失败了max_fails次,则nginx会认为该server不工作了。同时,在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。

 

2.重启nginx,让配置生效

ps -ef | grep nginx

kill 进程号

nginx -p `pwd`/ -c conf/nginx.conf

 

3.可以用任何方式测试tcp连接,我是用go语言写了个tcp访问服务,你也可以用java来写,用你熟悉的语言实现一个tcp服务

 

 

openresty中文网:http://openresty.org/cn/getting-started.html