场景

通过访问ip1:6633,可以直接连接ip2:3306的mysql服务。当换一个mysql数据库服务,只需要调整nginx的配置文件nginx.conf,然后重新启动nginx的容器,外界仍可以通过ip1:6633进行访问。

1 docker下载最新的nginx镜像

sudo docker pull nginx

2 在宿主机目录/home/xxx/app/,创建nginx.conf文件

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 sql {   
        server ip2:3306 weight=1 max_fails=2 fail_timeout=30s;   
    }
    server {
        listen     6633;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass sql;
    }
}

# proxy_pass的名称与upstream的名称要保持一致

3 启动docker并挂载nginx.conf文件对应到宿主机文件/home/xxx/app/nginx.conf

sudo docker run --name nginx -d -p 6633:6633 \
-v /home/cjy/app/nginx.conf:/etc/nginx/nginx.conf \
nginx:latest

* 访问mysql数据库服务ip2:3306时,可以通过ip1:6633进行访问。当换一个mysql数据库服务,只需要调整nginx.conf,然后重新启动nginx的容器,外界仍可以通过ip1:6633进行访问mysql服务。

更多推荐