nginx+lua를 위한 멋진 가로채기, 로드 밸런싱 및 세션 관리 라이브러리
github의 소스 및 문서 주소
https://github.com/yizhu2000/suproxy
다음에 대한 API를 제공합니다.
다음은 짧은 화면입니다.
Oracle용 SQL 필터링
Linux/Unix용 필터 명령
SSH2에 대한 로그 작업
SQL에 대한 로그 작업
Linux/Unix에 대한 환영 정보 변경
현재 지원되는 프로토콜에는 SSH2, ORACLE TNS, SQLSERVER TDS, LDAP가 포함됩니다.
SSH
SQL 서버
신탁
LDAP
사용자 이름 얻기
Y[^1]
Y[^2]
와이
Y[^6]
비밀번호 받기
Y[^1]
Y[^2]
N
Y[^6]
사용자 이름 변경
와이
와이
Y[^4]
와이
비밀번호 변경
와이
와이
N
와이
타사 인증
와이
와이
Y[^5]
와이
명령 받기
와이
와이
와이
Y[^7]
답장 받기
와이
와이
N
Y[^7]
변경 명령
와이
Y[^3]
Y[^3]
N
네트워크 컨텍스트(IP, 포트 등)를 가져옵니다.
와이
와이
와이
와이
클라이언트 컨텍스트 가져오기(클라이언트/서버 프로그램 이름 및 버전 등)
와이
와이
와이
N
SuProxy는 순수한 Lua로 작성되었으며 이벤트 기반 패턴으로 설계되었습니다. SuProxy 라이브러리의 사용 및 확장은 간단합니다. 리스너 채널을 시작하고 이벤트를 처리합니다. 이 예는 SSH2 수신기를 시작하고 SSH 연결의 인증 성공 이벤트를 처리하는 방법을 보여줍니다.
server {
listen 22;
content_by_lua_block {
local ssh=require("suproxy.ssh2"):new()
local channel=require("suproxy.channel"):new({{ip="192.168.1.135",port=22}},tds)
channel:run()
ssh.AuthSuccessEvent:addHandler(ssh,logAuth)
}
}
SuProxy는 기본 로드 밸런싱 기능을 제공합니다. 아래 예는 채널에 여러 업스트림을 전달하는 방법을 보여줍니다.
package.loaded.my_SSHB=package.loaded.my_SSHB or
require ("suproxy.balancer.balancer"):new{
{ip="127.0.0.1",port=2222,id="local",gid="linuxServer"},
{ip="192.168.46.128",port=22,id="remote",gid="linuxServer"},
{ip="192.168.1.121",port=22,id="UBUNTU14",gid="testServer"}
}
local channel=require("suproxy.channel"):new(package.loaded.my_SSHB,ssh)
SuProxy는 메모리 또는 redis에서 세션 컨텍스트를 수집하고 유지할 수 있습니다. 아래는 ssh 연결에서 SuProxy가 수집한 정보입니다.
{
"sid": "xxxxxxxxxxxx",
"uid": "xxxx",
"stype": "ssh2",
"uptime": 1600831353.066,
"ctime": 1600831353.066,
"ctx": {
"srvIP": "127.0.0.1",
"client": "SSH-2.0-PuTTY_Release_0.74",
"clientIP": "127.0.0.1",
"clientPort": "56127",
"username": "xxxx",
"srvPort": 2222,
"server": "SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.1"
}
}
Reference
이 문제에 관하여(nginx+lua를 위한 멋진 가로채기, 로드 밸런싱 및 세션 관리 라이브러리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yizhu2000/my-awesome-intercepting-load-balancing-and-session-management-libraries-for-nginx-lua-1h91텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)