目录
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的欢迎页面。