nginx通過(guò)四層代理實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的示例代碼
公司原有的測(cè)試數(shù)據(jù)庫(kù)在主機(jī)192.168.10.5上邊,現(xiàn)在數(shù)據(jù)庫(kù)轉(zhuǎn)移到了192.168.10.4上,為了不讓各個(gè)地方都需要更改地址,現(xiàn)在需要一個(gè)四層代理工具,將原來(lái)請(qǐng)求到192.168.10.5的3306端口轉(zhuǎn)發(fā)到192.168.10.4的3306端口。
這個(gè)工具,用到了 nginx 的四層代理。
官方文檔:http://nginx.org/en/docs/stream/ngx_stream_core_module.html
四層代理依賴模塊ngx_stream_core_module,該模塊自 1.9.0 版開始可用。默認(rèn)情況下,此模塊不構(gòu)建,應(yīng)使用配置參數(shù)啟用 --with-stream。
安裝過(guò)程簡(jiǎn)示:
[root@linux-node1 src]# tar xf nginx-1.10.3.tar.gz [root@linux-node1 src]# cd nginx-1.10.3 [root@linux-node1 nginx-1.10.3]# useradd -s /sbin/nologin -M www [root@linux-node1 nginx-1.10.3]# yum install gcc gcc-c++ zlib-devel pcre-devel openssl openssl-devel -y [root@linux-node1 nginx-1.10.3]# ./configure --prefix=/usr/local/nginx-1.10.3 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-stream [root@linux-node1 nginx-1.10.3]# make && make install
可以通過(guò)nginx -V查看一下是否將上述模塊編譯進(jìn)來(lái),如果沒(méi)有,可以重新編譯一下。
來(lái)到主配置:
worker_processes 1;
events {
worker_connections 1024;
}
stream {
upstream tcp_proxy {
hash $remote_addr consistent; #遠(yuǎn)程地址做個(gè)hash
server 192.168.10.4:22;
}
server {
listen 2222;
proxy_connect_timeout 1s;
proxy_timeout 10s; #后端連接超時(shí)時(shí)間
proxy_pass tcp_proxy;
}
}
此配置是將本機(jī)的 2222 端口轉(zhuǎn)發(fā)到 192.168.10.4 的 22 端口,配置之后,試驗(yàn)一下:
[root@7-3 nginx]$ssh -p 2222 root@192.168.10.5 The authenticity of host '[192.168.10.5]:2222 ([192.168.10.5]:2222)' can't be established. ECDSA key fingerprint is 05:2f:63:e9:87:be:b4:44:d3:d7:77:a0:52:e0:4f:2f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.10.5]:2222' (ECDSA) to the list of known hosts. root@192.168.10.5's password: Last login: Wed Nov 7 15:24:33 2018 from 192.168.10.1 [root@7-2 ~]$hostname -I 192.168.10.4
剛剛設(shè)置了 10 的超時(shí),如果需要的話,可以將之注釋掉。
同理,配置數(shù)據(jù)庫(kù)端口的轉(zhuǎn)發(fā)也就非常簡(jiǎn)單了:
worker_processes 1;
events {
worker_connections 1024;
}
stream {
upstream tcp_proxy {
hash $remote_addr consistent; #遠(yuǎn)程地址做個(gè)hash
server 192.168.10.4:3306;
}
server {
listen 3306;
proxy_connect_timeout 1s;
# proxy_timeout 10s; #后端連接超時(shí)時(shí)間
proxy_pass tcp_proxy;
}
}
這樣一來(lái),用戶連接192.168.10.5:3306的時(shí)候,就會(huì)被轉(zhuǎn)發(fā)到192.168.10.4:3306了。
到此這篇關(guān)于nginx通過(guò)四層代理實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關(guān)nginx 端口轉(zhuǎn)發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx如何配置同一個(gè)端口轉(zhuǎn)發(fā)多個(gè)項(xiàng)目
- nginx實(shí)現(xiàn)數(shù)據(jù)庫(kù)端口轉(zhuǎn)發(fā)
- nginx進(jìn)行端口轉(zhuǎn)發(fā)的實(shí)現(xiàn)
- 使用Docker安裝Nginx并配置端口轉(zhuǎn)發(fā)問(wèn)題及解決方法
- 使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)TCP代理的實(shí)現(xiàn)示例
- Mac中使用Nginx實(shí)現(xiàn)80端口轉(zhuǎn)發(fā)8080端口
- Nginx服務(wù)器中配置非80端口的端口轉(zhuǎn)發(fā)方法詳解
相關(guān)文章
nginx部署前端vue項(xiàng)目完整詳細(xì)指南
在使用Nginx部署前端Vue項(xiàng)目時(shí),需要確保項(xiàng)目的生產(chǎn)環(huán)境版本已經(jīng)打包,并且Nginx已經(jīng)安裝并配置在服務(wù)器上,下面我們來(lái)看看具體步驟吧2025-09-09
Nginx配置文件提權(quán)的實(shí)戰(zhàn)指南
在現(xiàn)代 Linux 系統(tǒng)中,nginx 通常作為 Web 服務(wù)的核心組件運(yùn)行,其支持的模塊化配置、靈活的路徑設(shè)置以及多樣的文件解析能力,本文結(jié)合一次真實(shí)場(chǎng)景,給大家介紹如何通過(guò)配置文件完成提權(quán)操作進(jìn)行深入剖析,需要的朋友可以參考下2025-09-09
高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解
今天小編就為大家分享一篇關(guān)于高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Nginx反向代理基本設(shè)置的21個(gè)指令詳解
這篇文章主要介紹了Nginx反向代理基本設(shè)置的21個(gè)指令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻
Nginx?Proxy?Manager是一款功能強(qiáng)大的開源軟件,配置Web應(yīng)用防火墻,可以防止常見的web攻擊,本文就來(lái)介紹一下Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻,感興趣的可以了解一下2025-02-02
教你快速構(gòu)建一個(gè)基于nginx的web集群項(xiàng)目
本文教你快速構(gòu)建一個(gè)基于nginx的4/7層負(fù)載均衡的web集群項(xiàng)目,項(xiàng)目步驟本文給大家介紹介紹,對(duì)nginx web集群項(xiàng)目感興趣的朋友一起看看吧2021-11-11

