nginx 프록시를 사용하여 외부 네트워크에서 내부 네트워크의 mysql 또는 oracle 데이터베이스에 액세스하는 방법

        프로젝트 개발 및 배포 과정에서 인트라넷에 MySQL 또는 Oracle 데이터베이스를 설치하는 경우가 많은데, 우리의 애플리케이션 서비스는 외부 네트워크에만 배포할 수 있습니다.내부 네트워크에 연결된 데이터베이스에 외부 네트워크 서비스가 액세스하면 어떻게 될까요? 이번에는 Nginx 구성을 통해 외부 네트워크에서 인트라넷 데이터베이스에 액세스하는 방법을 소개합니다.

1. 프런트엔드 서버

        우선, 내부 네트워크 데이터베이스에 액세스할 수 있을 뿐만 아니라 외부 네트워크를 통해 프런트 엔드 프로세서에 액세스할 수 있는 프런트 엔드 프로세서 서버가 있는지 확인해야 합니다. 그런 다음 이 프런트 엔드 서버에 ngxin을 설치 및 배포하여 데이터 프록시를 구현합니다.

2. ngxin 구성

        여기서 ngxin 설치 및 배포는 생략하고 관심있는 분들은 바이두에서 해결하시면 됩니다. 여기에서는 주로 데이터 흐름 에이전트를 구성하는 방법을 소개합니다. nginx.conf 구성 내용은 다음과 같습니다.

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

stream {    
    upstream oracle {   
        server 192.168.0.1:1521;   #原oracle地址
    }

    upstream mysql {   
        server 192.168.1.102:3306;
    }
    
    server {
        listen  3335;# 反向代理后监听的端口,nginx启动后访问192.168.21.100:3335就可以访问到oracleA
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass oracle;
    }

    server {
        listen  8888;# 反向代理后监听的端口
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass mysql;
    }
}

        구성을 수정한 후 nginx를 다시 시작한 다음 외부 네트워크 IP 및 포트를 통해 프런트 엔드 프로세서에 액세스합니다. 이는 내부 네트워크 데이터베이스에 직접 액세스하는 것과 같습니다.

3. 테스트 검증

        Navicat과 같은 데이터베이스 클라이언트 연결 도구를 통해 테스트할 수 있습니다. 아래 그림의 예는 포트 8888을 통해 포트 3306에서 데이터베이스에 액세스하는 것입니다.


뉴에라 이주노동자

추천

출처blog.csdn.net/sg_knight/article/details/131961283