CentOS7yum安装Nginx以及TCP流转发(新手教程)

网上大部分文章都没说清楚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的端口。