nginx配置tcp转发

适合开发个人网页公司主页博客网站开发网站建设

转载自 http://www.5180it.com/f/article/82.html

 

Nginx支持TCP端口转发

有个接口是通过socket通信,对端服务器访问存在IP限制,只好通过跳板机,因为它具备访问对端服务器的权限。nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。
安装nginx,stream模块默认不安装的,需要手动添加参数:–with-stream,根据自己系统版本选择nginx1.9或以上版本 
nginx.conf (请注意,stream配置不能放到http内,即不能放到/etc/nginx/conf.d/,因为stream是通过tcp层转发,而不是http转发)

 

 1、对于已经安装nginx的,检查是否编译时带with-stream参数,#有with-stream参数,可以代理tcp协议

nginx -V |grep with-stream

 

2、修改主配置文件,添加stream目录

在nginx.conf最后一行添加 include /usr/local/nginx/tcp.d/*.conf;

注意不要在http里面

请注意,stream块和http块是两个不同的模块,stream不属于http模块,即不能放到/etc/nginx/conf.d/,stream是通过tcp层转发,而不是http转发。

3、创建对应的tcp.d目录,新建文件tcp.conf(文件名可以自己取)

添加下面配置

stream{
    upstream tcpssh{
        server  172.18.144.20:8365; 
   }
    server{
        listen 8365;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass tcpssh;
    }
}

"upstream tcpssh":转发的目的地址和端口等设置;其中tcpssh为自定义;
"server":提供转发的服务,即访问localhost: 8365 ,会跳转至代理"tcpssh"指定的转发地址.。

 

4、保存,并重启nginx

nginx -s reload

 

5、测试

public class Client {

public static void main(String[] args) throws UnknownHostException, IOException {

// 建立连接

Socket s = new Socket("120.79.69.105", 8365);

// 读取键盘输入流

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

// 端口输出

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line = null;

System.out.println("bbbbbbbbbbbbbbbbbbbbbbbb");

// 输入886结束输出

while ((line = br.readLine()) != null) {

if ("886".equals(line)) {

break;

}

bw.write(line);

bw.newLine();

bw.flush();

}

s.close();

}

}

可以看到后台日志,发现已能接受到,说明nginx配置成功了

 

 

如果nginx -s reload发现并没生效,而且nginx -t 也没报错

可以先停止nginx 然后启动

 

 

 nginx -s reload 在重启时  遇到下面问题

nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

 

解决方法:

需要先执行

nginx -c /etc/nginx/nginx.conf

nginx.conf文件的路径可以从nginx -t的返回中找到。

nginx -s reload

 

 

适合开发个人网页公司主页博客网站开发网站建设

转载自 http://www.5180it.com/f/article/82.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值