您的位置:首页 > 运维架构 > Nginx

centos下安装nginx1.16.1,添加stream模块实现tcp/udp代理转发

2020-03-01 10:15 2006 查看

目录

1.下载nginx

2.新增stream模块,编译与安装nginx

3.修改配置文件

4.重载nginx

摘要

ngx_stream_core_module 这个模块在1.9.0版本后将被启用。但是并不会默认安装,需要在编译时通过指定 --with-stream 参数来激活这个模块。本人在安装的时候也遇到过很多坑,初次是在window下安装nginx1.16.1实现tcp/udp的代理转发,但是发现window下并不支持udp协议(支持tcp协议),然后转向centos下安装nginx。这次详细的、简单易懂的安装记录希望对大家有帮助。

1.下载nginx1.16.1

#下载nginx1.16.1
wget http://nginx.org/download/nginx-1.16.1.tar.gz

#安装编译依赖包
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel

#解压并移动文件夹到/usr/local下
tar -zxvf nginx-1.16.1.tar.gz
mv -t /usr/local/ nginx-1.16.1
cd nginx-1.16.1

#添加用户,用户组
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M

2.新增stream模块,编译与安装nginx

#编译nginx,加入stream模块,https模块和状态监控模块一起编译,并指定用户名,用户组
./configure --with-stream --with-stream_ssl_module --with-http_stub_status_module --user=nginx --group=nginx

#执行编译,安装
make && make install

#查看nginx版本以及新增模块
cd /usr/local/nginx/sbin
./nginx -V

3.修改配置文件

#进入配置文件
vi/usr/local/nginx/conf/nginx.conf

#修改配置,支持tcp/udp的stream模块配置和http的配置属于同级
stream {
server {
#添加udp,表示监听12345端口,向192.168.1.100:3306发送udp包
listen 12345 udp;
proxy_pass 192.168.1.100:3306;
}
server {
#不添加默认为tcp协议,表示监听12346端口,向192.168.1.101:3306发送tcp包
listen 12346;
proxy_pass 192.168.9.101.3:3306;
}
}

4.重载nginx

/usr/local/nginx/sbin/nginx -s reload

报错1

nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

解决方法:
logs目录没有nginx.pid文件,使用指定nginx.conf文件的方式重启nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

报错2

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决方法:
查看端口:

netstat -ntlp

杀掉80端口对应的进程

kill 94005


再次重启

/usr/local/nginx/sbin/nginx -s reload

访问nginx
在浏览器地址栏输入你的Linux虚拟机的静态ip,会跳转到nginx的欢迎页面。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
小长工 发布了2 篇原创文章 · 获赞 0 · 访问量 352 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: