Nginx反向代理Oracle

把 Oracle 搬到指尖:Nginx 反向代理实战笔记

场景速写

医院内网与互联网物理隔离,我的笔记本只有一个网口:

• 插光纤 → 外网

• 连 Wi-Fi → 内网

于是日常变成:光纤插本机 → TeamViewer 连隔壁的跳板机 → 再连 Oracle。

有没有更优雅的姿势?
把跳板机上的 Oracle "映射" 出来,直接在本机连!


思路:Nginx 做 TCP 反向代理

Oracle 监听 1521 → 跳板机监听 1522 → 本机直连 跳板机 IP:1522。

配置极简,但默认参数会"掉线",需要微调。


最终配置(已美化)

nginx 复制代码
worker_processes auto;

events {
    worker_connections 1024;
}

# ========== TCP 反向代理 ==========
stream {
    upstream oracle_backend {
        server 192.168.8.11:1521;
        keepalive 32;              # 连接池保活
    }

    server {
        listen 1522 reuseport;     # 多核并发
        proxy_pass oracle_backend;
        proxy_timeout 1h;          # 防止空闲断线
        proxy_connect_timeout 10s;
        proxy_socket_keepalive on; # TCP keepalive

        access_log /var/log/nginx/oracle_tcp.log proxy;
    }

    # 日志格式
    log_format proxy '$remote_addr:$remote_port -> $upstream_addr '
                     '[$time_local] $bytes_sent/$bytes_received '
                     '$session_time';
}

三步验证

  1. 语法检查

    bash 复制代码
    nginx -t && systemctl reload nginx
  2. 端口测试

    bash 复制代码
    telnet 跳板机IP 1522   # 出现 Connected 即 OK
  3. 长连接验证

    用 SQL Developer 连上后静置 30 min,未掉线即成功。


掉线根因 & 对策

表格

复制

现象 根因 对策
几分钟后断开 Nginx 默认 proxy_timeout 10m 改成 1h
防火墙踢掉空闲连接 网络设备超时 开启 TCP keepalive,或让网管放宽策略

效果对比

表格

复制

方式 延迟 掉线 操作路径
TeamViewer 高 偶发 本机 → 跳板机 → Oracle
Nginx 代理 低 无 本机 → Oracle

彩蛋:一条命令查看实时会话数

bash 复制代码
watch -n1 'ss -ant | grep :1522'

至此,再也不用"远程远程机"了。

祝各位工程师早日摆脱 TeamViewer 的束缚,愉快写 SQL!

相关推荐
木井巳3 分钟前
【JavaEE】SpringBoot 统一功能处理: 拦截器、统一返回与全局异常
java·spring boot·后端·spring·java-ee
pan_junbiao6 分钟前
Go语言中的空白标识符
开发语言·后端·golang
IT_陈寒1 小时前
SpringBoot性能优化完全指南
前端·人工智能·后端
随性而行3601 小时前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
阿里嘎多学长2 小时前
2026-10-23 GitHub 热点项目精选
开发语言·程序员·github·代码托管
相隔一个图书馆的距离2 小时前
单测(三)Spring Boot 3.5.6 && @MockitoSpyBean / AOP / 循环依赖:静默吞错与运行期 NPE
java·spring boot·后端
凤山老林2 小时前
Spring Boot 集成 Apache CXF 发布与消费 SOAP WebService:WSDL、WS-Security
spring boot·后端·apache·webservice·soap·apache cxf
软件技术NINI2 小时前
基于JavaWeb 汽车租聘
java·vue.js·spring boot·后端·python·毕业设计·毕设
yz_aiks2 小时前
RestTemplate 废弃后迁移 RestClient 实战:Spring Boot 4.2 升级指南
java·spring boot·后端·微服务·restclient
金銀銅鐵11 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(上)
java·后端·ai编程