網(wǎng)站首頁 編程語言 正文
使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)TCP代理的實(shí)現(xiàn)示例_nginx
作者:翟衛(wèi)衛(wèi) ? 更新時(shí)間: 2022-03-16 編程語言需求產(chǎn)生背景
最近同事在測試和生產(chǎn)環(huán)境中分別部署了一套應(yīng)用,由于應(yīng)用只能集成LDAP,而我們公司使用的是AD,于是我搭建了一個(gè)OpenLDAP服務(wù),賬號(hào)先通過lsc從AD同步到OpenLDAP,然后使用saslauthd傳遞身份驗(yàn)證到AD。在測試環(huán)境中我們的應(yīng)用能夠連接LDAP登錄,但是在生產(chǎn)環(huán)境中卻無法訪問到OpenLDAP服務(wù)器,我不想重復(fù)的在生產(chǎn)環(huán)境重新安裝維護(hù)一套OpenLDAP服務(wù),這個(gè)過程比較繁瑣,還需通過定時(shí)任務(wù)每天讓AD的賬號(hào)與OpenLDAP同步,于是我想這可以通過端口轉(zhuǎn)發(fā)實(shí)現(xiàn),節(jié)點(diǎn)之間的拓?fù)浯蟾畔裣旅孢@樣。
為什么要使用Nginx實(shí)現(xiàn)
在百度上搜索端口轉(zhuǎn)發(fā),實(shí)現(xiàn)的方式有很多種,多數(shù)都是通過Iptables實(shí)現(xiàn),但是我分別在Ubuntu和CentOS服務(wù)器上測試過都沒生效,無奈選擇Nginx來實(shí)現(xiàn)
使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)
如果我們的操作系統(tǒng)比較新,可以直接直接通過軟件源安裝nginx,只要nginx版本大于1.9默認(rèn)是支持TCP代理的。
檢查nginx是否支持TCP代理
nginx -V
當(dāng)我們?cè)谳敵龅呐渲脜?shù)中包含
--with-stream
說明nginx是支TCP代理的
安裝依賴
RHEL/CentOS/Fedora
yum install -y pcre* openssl*
Debian/Ubuntu
apt-get install zlib1g-dev libpcre++-dev openssl
下載依賴
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz tar -zxvf ngx_cache_purge-2.3.tar.gz -C /usr/local/src
下載并安裝
下載源碼包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
解壓
tar -zxf nginx-1.9.9.tar.gz
編譯安裝
cd nginx-1.9.9 ./configure --prefix=/usr/local/nginx \ --add-module=/usr/local/src/ngx_cache_purge-2.3 \ --with-http_stub_status_module --with-stream make && make install;
修改配置文件
/usr/local/nginx/conf/nginx.conf
events { ... } stream { upstream ldap { hash $remote_addr consistent; server 192.168.1.8:389; } server { listen 1389; proxy_connect_timeout 5s; proxy_timeout 5s; proxy_pass ldap; } } http { ... }
這個(gè)示例我們將本地的1389端口轉(zhuǎn)發(fā)到192.168.1.8的389端口上
啟動(dòng)并檢查服務(wù)是否正常
啟動(dòng)nginx服務(wù)
/usr/local/nginx/sbin/nginx
檢查nginx進(jìn)程
netstat -anput | grep nginx
原文鏈接:https://blog.csdn.net/jack170601/article/details/122114545
相關(guān)推薦
- 2023-02-10 WPF實(shí)現(xiàn)圓形進(jìn)度條的示例代碼_C#教程
- 2022-12-24 淺析如何截獲C#程序產(chǎn)生的日志_C#教程
- 2022-05-26 簡單聊一聊SQL注入及防止SQL注入_數(shù)據(jù)庫其它
- 2022-05-02 關(guān)于Nginx中虛擬主機(jī)的一些冷門知識(shí)小結(jié)_nginx
- 2022-07-30 Go語言sort包函數(shù)使用示例_Golang
- 2022-05-17 Spring Cloud Loadbalancer 修改默認(rèn)緩存為Caffeine,修改微服務(wù)啟動(dòng)關(guān)
- 2022-03-28 C++讀取wav文件中的PCM數(shù)據(jù)_C 語言
- 2022-11-14 Go語言官方依賴注入工具Wire的使用教程_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支