系统环境: centos 7
版本: nginx 1.22.1
下载nginx 安装包 :
------------------------------------
nginx-1.22.1.tar.gz ,nginx: download
编译安装:
yum install -y make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream=dynamic --with-stream_realip_module
make && make install
ln -snf /usr/local/nginx/sbin/nginx /usr/local/sbin
useradd -s /sbin/nologin -M nginx
mkdir /var/log/nginx
编辑配置文件:
-------------------------------
新增一下内容:
stream{
upstream im_net_server{
# im
server 172.16.11.22:8888 max_fails=3 fail_timeout=30s;
}
server{
listen 8888;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass im_net_server;
}
}
在 events {} 上方添加一下配置:
load_module /usr/local/nginx/modules/ngx_stream_module.so;
启动:
cd /usr/local/nginx/sbin
./nginx -c /usr/locl/nginx/conf/nginx.conf
遇到的问题:
1) 在编译时,如果不加 --with-stream=dynamic 配置,在 代理mysql 的 tcp 能成功,但在代理到java 后端 tcp server, 连接能连上,但马上又会断开,未找到原因
2)加 --with-stream=dynamic 配置项后,需要 指定 stream 模块的路径:
load_module /usr/local/nginx/modules/ngx_stream_module.so;