安装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