网上大部分文章都没说清楚nginx stream 模块是否加载,能否使用,经过摸索安装验证。
配置epel yum 源
确保系统已经安装了wget,如果没有安装,执行 yum install wget 安装。
wget
rpm -ivh epel-release-latest-7.noarch.rpm
yum list |grep nginx
看到有
nginx-mod-stream.x86_64 1:1.20.1-2.el7
这个版本
yum -y install nginx-mod-stream.x86_64
等安装完成后默认nginx配置路径
cat /etc/nginx/nginx.conf 能看到一行 include /usr/share/nginx/modules/*.conf;
在这行之下添加
stream {
server {
listen 18443;
proxy_pass 58.xxx.xxx.xxx:8443;
}
}
####
测试nginx
#启动nginx服务
systemctl start nginx.service
#停止nginx服务
systemctl stop nginx.service
#重启nginx服务
systemctl restart nginx.service
#查看运行状态
systemctl status nginx.service
设置开机启动
systemctl enable nginx.service
查看nginx 启动状态
systemctl status nginx
查看 安装nginx 所生成的文件
[root@localhost ~]# rpm -ql nginx
卸载软件方法:
1.yum remove xxx
2.rpm -e xxx
3.tar包直接删除文件安装目录即可或者make uninstall xxx
nginx的stream配置代理(shadowsocks-libev服务端对每个tcp链接进行限速)
nginx stream 提供了四层代理。可以通过proxy_download_rate和proxy_upload_rate设置下载和上传限速。平时在七层http核心模块ngx_http_limit_conn_module这个模块提供limit_conn限速。
proxy_upload_rate 和proxy_download_rate分别配置从客户端读数据和从上游服务器读数据的速率,单位为每秒字节数,默认为0,不限速。
我的需求场景是:shadowsocks-libev服务端对每个tcp链接进行限速,不限制速度,网卡很容易被客户端的下载拖垮,限制后客户端表现平稳,服务端运行也平稳。
下面是nginx的配置:
stream{
upstream ss1 {
server 127.0.0.1:8389;
}
server {
listen 1025;
proxy_upload_rate ;
proxy_download_rate ;
proxy_pass ss1;
}
}
其中1025是暴露给客户端的端口,8389是shadowsocks-libev的端口。