ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

docker搭建nginx 配置mysql反向代理

2021-11-06 12:31:35  阅读:124  来源: 互联网

标签:容器 端口 nginx conf mysql home docker


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

标签:容器,端口,nginx,conf,mysql,home,docker
来源: https://www.cnblogs.com/pengcool/p/15516433.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有