MySql教程

docker搭建nginx 配置mysql反向代理

本文主要是介绍docker搭建nginx 配置mysql反向代理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

背景:应用和数据库装在两个服务器,数据库的那个服务器不能外网访问,所以在能外网访问的应用服务器上配了个mysql反向代理,把mysql端口映射出来,在这记录一下安装配置过程,以及中间所遇到的问题。

docker安装nginx

1、查看可用的nginx版本

docker search nginx

2、取最新的nginx安装

docker pull nginx:latest

3、查看docker 镜像是都有nginx

docker images 

4、运行nginx

$ docker run --name nginx -p 8080:80 -d nginx

nginx :容器名称
8080:本地端口
80:容器内部的80端口
-d:nginx: 设置容器在后台一直运行

5、查看nginx是否启动
docker ps 查看所有正在运行的容器
docker ps -l 查看最近一次运行的容器
docker ps | grep nginx 利用管道符查询

6、进入容器
首先查看启动容器的 CONTAINER ID

docker ps

然后输入 docker exec -it CONTAINER ID bash 命令进入容器,此处 CONTAINER ID为上边查询出的。

7、修改nginx配置文件
nginx.conf配置文件在 /etc/nginx/ 下面,但是你使用vim nginx.conf 或者vi nginx.conf
会发现vi或者vim命令没有用,解决办法:apt-get update 完成之后 apt-get install vim

8、容器重启
docker restart nginx
此处应注意 如果你要重新定义端口映射,还是想起nginx这个名字的话 在停止容器的同时应该docker rm nginx,将nginx这个name移除 否则会报错。

9、端口开启
防火墙开启端口,安全组放开端口。

10、nginx主机配置文件挂载

docker run --name nginx -p **8089:80** -v **/home/inspur/docker-nginx/nginx.conf**:/etc/nginx/nginx.conf -v **/home/inspur/docker-nginx/log**:/var/log/nginx -v **/home/inspur/docker-nginx/conf.d/default.conf**:/etc/nginx/conf.d/default.conf -d nginx

加粗的几个地方是需要注意的点

--name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p 映射端口,将docker宿主机的8089端口和容器的80端口进行绑定
-v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面
第三个-v 表示的和第一个-v意思一样的。
-d 表示启动的是哪个镜像

nginx配置mysql反向代理

vim nginx.conf
添加如下配置文件

stream {
    upstream cloudsocket {
       hash $remote_addr consistent;
       server 192.168.0.3:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 3306;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
       proxy_pass cloudsocket;
    }
}

注意stream 与http同级 不要写在http里边。

然后重启容器

 1. docker stop nginx
 2. docker rm nginx
 3. docker run --name nginx -p 3306:3306 -v /home/inspur/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/inspur/docker-nginx/log:/var/log/nginx -v /home/inspur/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf  -d nginx

记得开启3306 端口哦

这篇关于docker搭建nginx 配置mysql反向代理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!