docker搭建nginx 配置mysql反向代理

5 篇文章 0 订阅
3 篇文章 0 订阅

背景:应用和数据库装在两个服务器,数据库的那个服务器不能外网访问,所以在能外网访问的应用服务器上配了个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 端口哦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值