单机部署
包部署
1. 下载nginx包
wget https://nginx.org/download/nginx-1.20.2.tar.gz
2.解压nginx压缩包
tar -zxvf nginx-1.20.2.tar.gz
3.安装组件库
安装gcc
yum install gcc‐c++
nginx的http模块使用pcre来解析正则表达式,需要在linux上安装pcre库
yum install ‐y pcre
yum -y install pcre-devel
安装zlib库,nginx使用zlib对http包的内容进行gzip
yum install ‐y zlib zlib-devel
安装openssl库,让 nginx 支持 https(即在ssl协议上传输http)
yum install ‐y openssl
yum install ‐y openssl-devel
4.进入解压解压后的文件内执行下一步
5.定配置项,–prefix表示安装路径,–with-stream表示添加流模块
./configure --prefix=/opt/nginx/nginx-stream --with-stream --with-http_stub_status_module --with-http_ssl_module
6.make
7.make install
8.相关命令
/usr/local/nginx/sbin/nginx ----启动nginx
/usr/local/nginx/sbin/nginx -s reload —重新加载配置文件
异常处理
nginx: [emerg] “stream” directive is not allowed here in /opt/nginx/nginx-stream/conf.d/xone-test.conf:1
nginx: configuration file /opt/nginx/nginx-stream/conf/nginx.conf test failed
处理:stream不是默认插件需要单独安装
yum部署
yum 安装stream
安装stream组件
yum install nginx-mod-stream -y
nginx集成stream后的配置
示例
#事件
events {
worker_connections 1024;
}
#流模块
stream {
#上游后端
upstream backend {
hash $remote_addr consistent;
server backend1.example.com:12345 weight = 5;
server 127.0.0.1:12345 max_fails = 3 fail_timeout = 30s;
server unix:/ tmp / backend3;
}
#上游后端
upstream dns {
server 192.168.0.1:53535;
server dns.example.com:53;
}
server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
server {
listen 127.0.0.1:53 udp reuseport;
proxy_timeout 20s;
proxy_pass dns;
}
server {
listen [::1]:12345;
proxy_pass unix:/tmp/stream.socket;
}
}