nginx實(shí)現(xiàn)TCP轉(zhuǎn)發(fā)

需要在服務(wù)器上實(shí)現(xiàn)個(gè)TCP服務(wù)器, 由于已安裝了nginx, 所以在nginx中給TCP開個(gè)口子。
stream模塊
網(wǎng)上文章的說法都是, 1.9.0版之后nginx開始具有TCP/UDP的代理轉(zhuǎn)發(fā)功能, 但需要手動(dòng)安裝stream模塊.
我用nginx -V
命令(注意V是大寫, 可查詢nginx已安裝模塊)查了一下, 我的nginx是1.16.0版本, 并且已經(jīng)安裝了stream模塊(命令輸出包含--with-stream
), 所以我就不用手動(dòng)安裝了.
配置文件的修改
首先要明確的一點(diǎn), 關(guān)于TCP轉(zhuǎn)發(fā)的配置, 是TCP層面的, 它和HTTP是同一層級(jí), 并不是HTTP的下層.
所以其配置項(xiàng)目要放在nginx的頂級(jí)配置文件(/etc/nginx/nginx.conf
)的頂級(jí)塊里面, 和頂級(jí)配置文件中的http塊同屬一個(gè)層級(jí). 注意不能放在conf.d
文件夾下, 這個(gè)文件夾下的配置文件都在http塊級(jí)以下.
在頂級(jí)配置文件(/etc/nginx/nginx.conf
)中添加如下配置塊:
實(shí)現(xiàn), 監(jiān)聽8998端口, 轉(zhuǎn)發(fā)8999端口(服務(wù)器上的程序?qū)崿F(xiàn)TCP server在8999端口).
nginx -t??
檢查一下配置文件,
nginx -s reload??
重新加載配置, 即可!
UDP的轉(zhuǎn)發(fā)
UDP的轉(zhuǎn)發(fā)類似, 我這次的應(yīng)用不需要, 也就沒有測試試驗(yàn), 不過先記錄在此.
配置塊如下: