nginx实现数据库端口转发

 更新时间:2023年03月07日 10:06:11   作者:ourLang  
本文主要介绍了nginx实现数据库端口转发,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

出于数据安全性考虑,正常情况下,网站或者项目的数据库一般都是禁止外网访问,或者只允许部分主机访问。那么,如何才能不修改这类权限的前提下,让其他被禁止访问的主机也能访问这个数据库呢。这时,Nginx的作用就体现出来了。

1、mysql为例

oracle、sqlserver等数据库配置和下面配置一样,只是数据库的端口不一样而已
需要注意的是这个配置要写在http外边

#使用nginx做数据库端口转发
stream {
    upstream sql {   
    # 配置数据库的ip和端口
        server 172.16.8.190:3306 weight=1 max_fails=2 fail_timeout=30s;   
    }
    server {
     # 配置本机暴露端口
       listen     925;
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass sql;
    }
}

2、完整配置如下

#user  nobody;#配置用户或者用户组,默认为nobody
worker_processes  2;#允许生成的进程数,默认为1

#制定日志路径,级别。这个设置可以放入全局块,http块,server块,
#级别以此为:debug|info|notice|warn|error|crit|alert|emerg
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;#指定nginx进程运行文件存放地址


events {
    worker_connections  1024;    #最大连接数,默认为512
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
}

stream {
    upstream sql {   
        server 172.16.8.190:3306 weight=1 max_fails=2 fail_timeout=30s;   
    }
    server {
       listen     925;
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass sql;
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    #配置tomcat的IP地址和访问端口
    upstream tomcat {
        server 172.16.8.190:8080;
        
     }
    
    server {
        listen       9008;
        server_name  172.16.8.190;
    #header name含下划线
    underscores_in_headers on; 
    #charset gbk; # 编码设置
    #开启gzip压缩
        #gzip模块设置
        gzip on; #开启gzip压缩输出
        gzip_min_length 1k; #最小压缩文件大小
        gzip_buffers 4 16k; #压缩缓冲区
        gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
        gzip_comp_level 2; #压缩等级
        gzip_types text/plain application/x-javascript text/css application/xml;
        #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
        gzip_vary on;
        #charset koi8-r;
        #charset utf-8,gbk; # 避免中文乱码
        #root    D:/htmlPage/dist; 
        #access_log  logs/host.access.log  main;
    location /{
        #这个地方指定被访问的文件夹位置
        root   D:/htmlPage;
        index  index.html index.htm;
        #limit_rate 1280k; #限制速度
        client_max_body_size  100M;
        allow all;
        autoindex on;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        add_header 'Access-Control-Allow-Headers' 'Content-Type';
        add_header 'Access-Control-Allow-Methods' 'GET';
        add_header 'Access-Control-Allow-Methods' 'POST';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Origin' '*';
        proxy_connect_timeout       600s;
        proxy_read_timeout          600s;
        proxy_send_timeout          600s; 
        access_log off;
        break;
        }
     }
 }

到此这篇关于nginx实现数据库端口转发的文章就介绍到这了,更多相关nginx 数据库端口转发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx网页缓存时间的配置过程

    nginx网页缓存时间的配置过程

    Nginx缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,下面这篇文章主要给大家介绍了关于nginx网页缓存时间的配置过程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Nginx路径重写方式

    Nginx路径重写方式

    这篇文章主要介绍了Nginx路径重写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • nginx中如何配置proxy_pass

    nginx中如何配置proxy_pass

    这篇文章主要介绍了nginx中如何配置proxy_pass问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • nginx实现静态文件的token认证过程

    nginx实现静态文件的token认证过程

    这篇文章主要介绍了nginx实现静态文件的token认证过程,
    2024-06-06
  • Nginx+Tomcat+Https 服务器负载均衡配置实践方案详解

    Nginx+Tomcat+Https 服务器负载均衡配置实践方案详解

    这篇文章主要介绍了Nginx+Tomcat+Https 服务器负载均衡配置实践方案的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Nginx 502 Bad Gateway错误解决详细指南与实例

    Nginx 502 Bad Gateway错误解决详细指南与实例

    这篇文章主要介绍了Nginx 502 Bad Gateway错误解决的相关资料,502BadGateway错误是Web开发和运维中常见的错误,表示一个服务器在充当网关或代理时,从上游服务器收到了一个无效的响应,需要的朋友可以参考下
    2024-11-11
  • nginx 隐藏版本号与WEB服务器信息的解决方法

    nginx 隐藏版本号与WEB服务器信息的解决方法

    这篇文章主要介绍了nginx 隐藏版本号与WEB服务器信息的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 通俗易懂讲解nginx-rtmp-module

    通俗易懂讲解nginx-rtmp-module

    nginx-rtmp-module 是一个用于 Nginx 的第三方模块,它扩展了 Nginx 服务器的功能,使其能够处理实时流媒体数据,本文就来详细的介绍一下nginx-rtmp-module的使用,感兴趣的可以了解一下
    2025-02-02
  • Nginx配置allow和deny指令的使用

    Nginx配置allow和deny指令的使用

    在Nginx配置中,allow和deny指令用于基于IP地址的访问控制,帮助管理员灵活管理资源访问权限,具有一定的参考价值,感兴趣的可以了解一下
    2025-05-05
  • nginx代理webSocket链接,webSocket频繁断开重连方式

    nginx代理webSocket链接,webSocket频繁断开重连方式

    当使用Nginx代理WebSocket连接时,若60秒内无数据交互,连接会断开,解决办法包括增加proxy_read_timeout时长或在客户端添加心跳机制,以维持连接稳定
    2024-09-09

最新评论