当前位置:首页 » 编程软件 » docker编译nginx

docker编译nginx

发布时间: 2023-06-20 03:00:00

Ⅰ Docker 入门 (07) 部署nginx 并且映射本地配置文件

目标:

1. 利用docker部署一个nginx容器

2.为nginx 容器设置配置文件 , 并且映射到宿主机(本机)

操作步骤:

1.拉取nginx镜像,并尝试简单运行(忘记怎么操作请参考第五节)

2.在本地新增配置文件 , 为了后面映射容器使用 ,我习惯是放到 /etc/docker/nginx-config , 按你个人运顷习惯新增

3.进入config ,我们需要创建一个简单配置文件 , 这里就来个简单的吧

4.因为我稍后需要占用的是8080端口 , 请确认云服务器端是否开放

5. 万事俱备 , 尝试启动吧

6. 使用你的 服务器ip+8080端口访问测试 , 看到您的写的 index,html 内容, 代表启动成功!

7.具体映射位置 可以 使用 docker exec -it [容野丛器ID] /bin/bash 命令去参考对应映射文件 ,原理就应该明白了

结语:

通过本节的 nginx 映射本地配置文件 , 应旁脊陆该掌握对docker映射文件的基本使用了 , 希望大家都把自己的nginx跑起来吧

Ⅱ Docker中使用Nginx部署多应用

最近打算将系统中的应用全部用docker进行部署,能够进行统一管理。
花费时间最多的问题是:

这两种方式各有优势各有痛点:

我最终还是选择使用一个nginx容器代理所有应用,因为如果多个域名不能都使用80,443端口访问确实很难受。
这篇文章包含了docker中很多元素,如果用的不对,也希望大家斧正。

步骤如下:

我之前已经准备好了两个简单的应用镜像,访问返回静态页面,启动两个应用。

创建一个appbridge用于容器之间的通信。

数据卷可以映射宿主机和容器中的目录,可以方便配置,修改内容和数据持久化。也可以在运行容器 -v 参数自动创建数据卷,这里为了清晰就单独拎出来。

test2应用相同方式创建。

因为需要配置https,先用certbot为域名生成证书和密钥(步骤省略),拷贝证书和密钥到数据卷ssl-certs-vol中。

修改nginx-vol数据卷中的nginx.conf文件,能够映射到nginx容器的配置。

添加服务器配置,这里配置了相同域名的三个端口的反向代理应用,应用地址可使用别名。

进入nginx容器,重新启动nginx

浏览器访问

Ⅲ Docker 搭建 Nginx 集群

实现负载均衡其实并不难、只是很多人不敢去尝试而已,简单来说就是:

在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡.

nginx的负载均衡有4种模式:

1)、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3)、ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4)、fair , url_hash(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    docker pull nginx ( docker pull cloud.io/nginx 这个稍微快点 )

    docker run -itd --name nginx1 -p 8080:80 nginx /bin/bash -- 主

    docker run -itd --name nginx2 nginx /bin/bash

    docker run -itd --name nginx3 nginx /bin/bash

    docker ps 查看

       docker network ls

docker nerwork inspect d530da7ebbd3

       进入nginx1 (主)

            docker exec -it d530da7ebbd3 /bin/bash   

            安装 vim 编辑器 (如有其他、尽可随意)   ---  注意:nginx2、nginx3 均安装 编辑器、下文不再赘述

                        1.  apt update   2.  apt install vim 

            cd /etc/nginx/

            vim nginx.conf

    进入nginx2

                docker exec -it e59de010efff /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.3:80 即可

            进入nginx3

                docker exec -it 0f12240cb622 /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.4:80 即可

重启三个nginx服务   service nginx restart

此时如果 docker容器会关闭、因此需要再次重启

        docker start d530da7ebbd3

        docker start e59de010efff

        docker start 0f12240cb622

测试结果

补充:

    上述说到 负载均衡有4种模式、

配置分别如下:

轮询模式:

    upstream webname {

        server192.168.0.1:8080;

        server192.168.0.2:8080;

  }

weight 模式:

    upstream webname {

        server192.168.0.1:8080 weight=2;

        server192.168.0.2:8080 weight=1;

  }

ip_hash模式:

 upstream webname {

    ip_hash;

    server192.168.0.1:8080;

    server192.168.0.2:8080;

  }

其他配置:

设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 backup;

  }

设置某个节点为down,那么这个server不参与负载。

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 down;

  }

Ⅳ 基于 Docker 安装 Nginx,启动运行,外网访问,映射配置文件

基于 Docker 安装 Nginx
查找Nginx镜像
语法:docker search nginx
示例:

获取Nginx镜像

示例:

启动nginx容器实例

说明:--name nginx nginx 第一个nginx是通过--name指定的nginx容器实例的名称,另一个nginx表示nginx仓库的名称。

查看nginx容器实例的进程信息

通过ps -ef | grep nginx查看

进入nginx容器内

杀死nginx容器实例

停止nginx实例

启动nginx容器实例

重启nginx容器实例

移除nginx容器实例

案例
暴露外部端口
基于docker run -d --name nginx nginx方法启动nginx后,Docker 容器并没有对外暴露访问的端口,即无法通过当前主机外部浏览器器访问nginx。那么该怎么样呢?

语法:

-p 80:80:通过-p来指定Docker容器中nginx实例对外开放的端口。本例中,第一个80端口是对外开放的端口,第二个80端口指对外开放的端口映射到容器里的端口号。

示例:

通过当前主机外的浏览器访问nginx,如下图:

指定外部的配置文件
语法:

说明:
-v: 表示挂载一个本机目录或文件到容器里。
-v /develop/nginx/nginx.conf:/etc/nginx/nginx.conf:将/develop/nginx/nginx.conf配置文件挂载到容器中/etc/nginx/nginx.conf这个配置文件中。
-v /develop:/develop:将/develop这个目录挂载到容器里的/develop这个目录里。

示例:

注意事项:指定外部配置文件,同时需要指定nginx的首页面,否则会抛出404错误,原因就是因为nginx找不到配置文件中默认的index页面。
本例中,使用/develop/apps/static/index.html替代了容器里的nginx默认的index页面,同时,-v /develop:/develop挂载根目录即可访问子目录。

指定网络模式:--net=bridge 默认模式

其中8080是指主机的端口,而80是指容器的端口
我们先看一下端口的状态

docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令:

找到这个Linux的ip地址,一般情况下这个地址是192.168.99.100,然后在Windows的浏览器中,输入这个地址,加上服务的端口即可启用了。

Ⅳ docker-compose快速启动nginx

创建nginx目录,目录下创建docker-compose.yml文件如下:

nginx目录下创建创建nginx.conf文件,根据实际情况配置,我这里写一个示例:

在nginx目录下创建build目录,将前端静态文件拷贝到下边

在nginx目录下执行如下命令启动服务

启动之后,nginx就可以正常使用了。

热点内容
androidlayoutview 发布:2025-02-08 15:45:01 浏览:620
大货车有哪些安全应急配置 发布:2025-02-08 15:44:55 浏览:537
安卓手机下黎明杀机为什么会闪退 发布:2025-02-08 15:38:27 浏览:488
定位算法源码 发布:2025-02-08 15:36:43 浏览:542
上游服务器异常什么意思 发布:2025-02-08 15:15:46 浏览:175
如何下载油猴脚本并安装 发布:2025-02-08 15:02:12 浏览:596
硬件哪个配置性价比高 发布:2025-02-08 14:47:07 浏览:146
如何去掉仅限自动配置 发布:2025-02-08 14:37:55 浏览:708
压缩空气有啥 发布:2025-02-08 14:26:01 浏览:704
python输入一个数 发布:2025-02-08 14:26:00 浏览:451