侧边栏壁纸
  • 累计撰写 49 篇文章
  • 累计创建 29 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

【Nginx】根据客户端请求IP,转发到不同的数据库

JHL&WWZ
2023-04-10 / 0 评论 / 0 点赞 / 646 阅读 / 380 字 / 正在检测是否收录...

需求来源:有客户需要做三级等保,涉及到数据库数据敏感数据加密的需求。
如:高校OA系统,要做三级等保,但是OA系统的开发商做不了加密,或者要加钱。学校不想一个个开发商的去沟通、付钱,所有想有一种办法,能对所有数据库做到统一加密,并且能过三级等保。
实现思路如下:

  • 1 采用数据安全相关软件,扫描OA系统数据库A的敏感数据,并将加密后的敏感数据另存到数据库B。
  • 2 采用以下配置,让来自不同IP的请求,访问不同的数据库。
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

stream {
    # 设置两个不同数据库的端口
    upstream backend_a {
        server 192.168.0.173:3306;
    }

    upstream backend_b {
        server 192.168.0.173:3307;
    }

   # 配置不同的请求,转发到不同的地址
    map $remote_addr $backend {
        default backend_a;
        192.168.0.29 backend_b;
        192.168.0.9 backend_a;
    }
   # 监听3306端口
    server {
        listen 3306;
        proxy_pass $backend;
    }
}


http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;


}


0

评论区