nginx socket转发设置

Posted vijayfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx socket转发设置相关的知识,希望对你有一定的参考价值。

1.添加依赖模块,如下

--with-stream --with-stream_ssl_module

2.nginx.conf 配置,参考说明:ngx_stream_core_module

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
.................
}

# tcp层转发的配置文件夹

include /etc/nginx/tcp.d/*.conf;

请注意,stream配置不能放到http内,即不能放到/etc/nginx/conf.d/,因为stream是通过tcp层转发,而不是http转发。

如配置在http内,启动nginx会报如下错误:

nginx: [emerg] "server" directive is not allowed here

3.在tcp.d下新建个bss_num_30001.conf文件,内容如下:

stream {
  #添加socket转发的代理 upstream proxy_forward { hash $remote_addr consistent; server
139.196.172.xx:80; #server 139.224.18.xx:80; #ip_hash; }   #提供转发服务,即访问forward.xxx.cn:80,并配置好请求头,会调整至proxy_forward指定的地址 server { #listen 127.0.0.1:80; listen forward.xxx.cn:80; proxy_pass xdaili_forward; } }

 


以上是关于nginx socket转发设置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置socket转发TCP协议传输,记录一下

在 Websocket 通过 Nginx 转发用户 IP

基于socket.io +koa2 +天行机器人 实现简单人机实时通讯(nginx处理socket.io https代理问题)

如何配置 nginx 以将 websocket 转发到不同的进程

Kubernetes Nginx Ingress 和 Socket.io 连接问题

nginx 的多域名多https转发设置方法