今天原本准备将本地金仓的54321端口进行代理的,但是发现代理后总是无法访问。后来突然发现之前使用nginx代理的是一个地址而不是端口。因此做以下笔记用来做记录。
一、stream安装与配置
假设nginx在usr/local/nginx中
1. 测试当前nginx是否有stream模块
./usr/local/nginx/sbin/nginx -V
如果查看configure arguments:后边存在 --with-stream则代表存在stream模块。(以上是安装好后的,未安装时configure arguments:为空)
没有的话便继续。
2. 新下载一个nginx
首先查看当前服务器上nginx的版本,然后下载一个相同版本的nginx将其放到local和当前nginx同一目录层级。
上图得知当前nginx版本为1.24.0。现在下载一个并解压
3.执行命令并编译
在新下载nginx下执行以下命令:
./configure --原来有的模块(如果有的话) --with-http_ssl_module --with-stream
等执行成功后进行编译
make
4.备份原有nginx
将原有nginx进行备份。因为需要替换原有nginx/sbin/nginx文件,所以进行备份以防错误。
5.替换nginx运行文件
替换之前需要先将原有nginx停止。
cp ./usr/local/nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/
然后回到原有nginx中运行sbin下的nginx即可启动。
6.验证
再次输入以下命令进行验证:
./usr/local/nginx/sbin/nginx -V
便可以看到configure arguments:后存在--with-stream模块了。
7.使用配置
(1) 配置nginx.conf
切换到conf下然后进入vim编辑nginx.conf
添加stream模块,从该处可以看出需要在/usr/local/nginx下新增conf.d文件夹。然后并在该地址下新增一个stream开头且以conf为后缀的文件。
stream {include /usr/local/nginx/conf.d/stream*.conf;
}
touch stream_bd.conf
我在这里新增了一个stream_bd.conf配置文件,然后在其中进行端口代理(将本地54321端口代理为58080)
upstream streamOne{server 127.0.0.1:54321 max_fails=3 fail_timeout=30s;
}
server {listen 58028;proxy_pass streamOne;}
最后启动nginx即可。