Docker 安装 Nginx,并实现负载均衡

这篇具有很好参考价值的文章主要介绍了Docker 安装 Nginx,并实现负载均衡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

          1、获取 nginx 的镜像

# 默认是latest版本

docker pull nginx  

        2、运行 nginx 容器

docker run --name nginx-80 -p 80:80 --rm -d nginx

# --name nginx-80 设定容器的名称

# -p 80:80 端口进行映射,将本地的80端口映射到容器内部的80端口

# --rm 表示容器退出后直接删除该容器

# -d 后台运行该容器

# 上述运行后,直接可以访问nginx服务

Docker 安装 Nginx,并实现负载均衡,docker,docker

         3、浏览器输入 http://localhost 测试是否启动成功 

Docker 安装 Nginx,并实现负载均衡,docker,docker

        4、实现 nginx 的负载均衡

# 首先创建目录和文件夹,用于存储 nginx 的相关配置文件

# -p 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

mkdir -p /usr/local/nginx

mkdir -p /usr/local/nginx/html

mkdir -p /usr/local/nginx/logs

mkdir -p /usr/local/nginx/conf

Docker 安装 Nginx,并实现负载均衡,docker,docker

# 其次把容器内部的文件复制到所创建的目录中来

docker cp nginx-80:/etc/nginx/nginx.conf /usr/local/nginx/conf

docker cp nginx-80:/etc/nginx/conf.d /usr/local/nginx/conf

Docker 安装 Nginx,并实现负载均衡,docker,docker

        5、启动多个 tomcat 容器用于实现负载均衡,我的 /usr/local/docker/xhf 文件夹里面只有一个 index.html ,内容很简单。


docker run --rm -d --name tomcat-8081 -p 8081:8080 -v /usr/local/docker/xhf/:/usr/local/tomcat/webapps/xhf tomcat:8

docker run --rm -d --name tomcat-8082 -p 8082:8080 -v /usr/local/docker/xhf/:/usr/local/tomcat/webapps/xhf tomcat:8

docker run --rm -d --name tomcat-8083 -p 8083:8080 -v /usr/local/docker/xhf/:/usr/local/tomcat/webapps/xhf tomcat:8

Docker 安装 Nginx,并实现负载均衡,docker,docker

        6、关闭刚才咱们启动的 nginx,执行命令 docker stop nginx-80,然后重新启动一个 nginx 容器,并挂载相关的配置文件和目录,命令如下所示:

# 停掉刚才启动的 nginx 容器
docker stop nginx-80

# 开启新的 nginx 容器,并指定数据卷
docker run -it --name nginx-80  -d -p 80:80 -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf  -v /usr/local/nginx/logs:/var/log/nginx nginx

# 1、创建了一个新的容器,运行的是 nginx,给容器命名为 nginx-80,-d为后台运行

# 2、文件夹挂载,将宿主机的 html 文件夹挂载到容器的 /usr/share/nginx/html 文件夹中。

# 3、文件挂载,将宿主机的 nginx.conf 文件挂载到容器的 /etc/nginx/nginx.conf 文件中。

# 4、文件挂载,将宿主机的 default.conf 文件挂载到容器的 /etc/nginx/conf.d/default.conf 文件中。

# 5、文件夹挂载,将宿主机的 logs 文件夹挂载到容器的 /var/log/nginx 文件夹中。

Docker 安装 Nginx,并实现负载均衡,docker,docker

        输入命令:docker inspect nginx-80,查看容器详情,我们这里只截取其中的一小部分,如下所示:

Docker 安装 Nginx,并实现负载均衡,docker,docker

        如果这个时候,启动创建 nginx 容器失败了,可以到 /var/log/ 目录下,看下 messages 文件存储的日志,还需要注意的是当文件挂载的时候,如果容器和宿主机都有相同的文件,且文件内容不一致的话,那么你的容器是启动不了的,我也是在这个地方耽误了两天的时间,切记!切记。

        在 /usr/local/nginx/html 路径下,随便创建一个文件 index.html ,即可正常访问 nginx,如下所示:

echo 'nefu-yzk.top11111'>>index.html

Docker 安装 Nginx,并实现负载均衡,docker,docker

Docker 安装 Nginx,并实现负载均衡,docker,docker

 7、集群配置

        第一步:修改 nginx.conf 文件,执行命令:vim /usr/local/nginx/conf/nginx.conf,添加以下内容:

upstream nginxCluster{
    server 192.168.88.10:8080;
    server 192.168.88.10:8081;
    server 192.168.88.10:8082;
}
server {
    listen 80;
     server_name localhost;
     #charset koi8-r;
     #access_log /var/log/nginx/host.access.log main;
     location /{
         proxy_pass http://nginxCluster;
     }
}

Docker 安装 Nginx,并实现负载均衡,docker,docker

        第二步:修改 conf.d/default.conf 文件,执行命令:vim /usr/local/nginx/conf/conf.d/default.conf,添加以下内容:

    location / {
                proxy_pass http://nginxCluster;
             }  

Docker 安装 Nginx,并实现负载均衡,docker,docker

        如果你发现,你修改的这两个文件,容器里面的文件并没有发生变化,那么此时需要干的事情是:

# 1、关掉当前的 nginx-80 容器 
docker stop nginx-80

# 2、把刚才修改的这两个文件删除掉,哪种删除方式都可以,因为这两个文件我们上面修改了,必须得删除掉重新拉取,要不文件就不一致了,容器就启动不起来了。
rm -rf /usr/local/nginx/conf/nginx.conf
rm -rf /usr/local/nginx/conf/conf.d

# 3、再重新启动下 nginx-80 容器
docker run --name nginx-80 -p 80:80 --rm -d nginx

# 4、把容器内部的文件复制到所创建的目录中来
docker cp nginx-80:/etc/nginx/nginx.conf /usr/local/nginx/conf
docker cp nginx-80:/etc/nginx/conf.d /usr/local/nginx/conf

# 5、关掉当前的 nginx-80 容器
docker stop nginx-80

# 6、为即将修改的文件赋予权限,中途修改的无效,需要 run 之前就修改了
cd /usr/local/nginx/conf
chmod 666 nginx.conf

cd /usr/local/nginx/conf/conf.d
chmod 666 default.conf

# 7、启动 nginx-80 容器
docker run -it --name nginx-80 --rm -d -p 80:80 -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf  -v /usr/local/nginx/logs:/var/log/nginx nginx

        如果你发现,你修改的两个文件,容器里面的两个文件也跟着发生变化了,那就比较简单了,直接执行重启 nginx 的命令:docker restart nginx-80 即可。

Docker 安装 Nginx,并实现负载均衡,docker,docker

        在浏览器输入 http://localhost/xhf 地址,如下所示:

Docker 安装 Nginx,并实现负载均衡,docker,docker文章来源地址https://www.toymoban.com/news/detail-592666.html

到了这里,关于Docker 安装 Nginx,并实现负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker搭建Nginx+keepalived高可用负载均衡服务器

    一、背景 1.nginx高可用 在生产环境下,Nginx作为流量的入口,如果Nginx不能正常工作或服务器宕机,将导致整个微服务架构的不可用。所以负责负载均衡、反向代理的服务(Nginx)为了提高处理性能,高可用,也需要集群部署。本期咋们采用 keepalived 和 Nginx实现高可用。 2.Kee

    2024年04月22日
    浏览(47)
  • graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

    注:初始环境等跳过配置 node1 192.168.1.100 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3 node2 192.168.1.101 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3 node3 192.168.1.102 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3  4.1登陆graylog查看system/nodes节点 4.2graylog-sidecar收集日志 创建收集日志的Inputs 建立输入:

    2023年04月09日
    浏览(29)
  • 编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

    目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡(Weighted Load Balancing) 轮询(Round Robin) IP 哈希(IP Hash) 最少连接(Least Connections) URL 哈希(URL Hash) 想要安装nginx,首先我们需要有一台Ubuntu的虚拟机,然后最好在

    2024年01月25日
    浏览(51)
  • Nginx入门——Nginx的docker版本和windows版本安装和使用 & 代理的概念 & 负载分配策略

    1.Nginx反向代理,代理的概念,正向代理,反向代理; 2.docker版本的nginx配置,挂载启动,开放端口; 3.windows版本的使用,代理多个端口的方式; 4.负载分配的策略,轮询,权重,ip_hash方式; http://nginx.org/en/download.html Nginx(engine x) 是一个高性能的 HTTP和反向代理web服务器 ,同

    2024年02月11日
    浏览(42)
  • Nginx安装及配置负载均衡

    http://nginx.org/en/download.html 注:下载稳定版,即Stateable Version的,选择对应操作系统,我这里是Linux,就选择了 nginx-1.24.0 安装C++库和openssl等 安装 顺序执行下列命令 七层负载均衡 nginx的负载均衡语法 nginx的负载均衡策略 轮询(Round Robin默认) ​ 轮询是最常见的一种负载均衡策

    2024年02月09日
    浏览(44)
  • Nginx的安装及负载均衡搭建

     PERE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库 。  zlib zlib库提供了很多种压缩和解压缩的方式,nginx使

    2024年02月12日
    浏览(23)
  • nginx负载均衡的实现

    1、 安装nginx https://blog.csdn.net/qq_50247813/article/details/126550316 2、 修改配置文件,配置后端服务器 2.1、有3台后端服务需要实现负载均衡 172.17.0.2:80 172.17.0.3:80 172.17.0.4:80 2.2、修改配置文件,使用代理的方式实现负载均衡(默认轮询) 设置代理名字为myweb,代理到myweb实现负载 3、

    2023年04月16日
    浏览(36)
  • 配置Nginx实现负载均衡

    简介 在本教学文章中,我们将学习如何使用Nginx配置负载均衡,将流量均匀分配到多个后端服务器,从而提高应用程序的可靠性和性能。负载均衡是一种常见的应用场景,通过分配请求到多个服务器上,可以实现负载的均衡分配,增加系统的可扩展性和容错能力。本教程将介

    2024年02月13日
    浏览(61)
  • 使用Nginx实现负载均衡

    本文将详细介绍使用Nginx实现负载均衡的方法。 负载均衡(Load Balancing)是将传入的请求流量分发到多个后端服务器的技术,以达到消除单点故障、提高可用性、增加扩展性等目的。 负载均衡需要根据算法来决定如何将请求分发到后端服务器。常见的负载均衡算法包括: 2.2.1 轮询

    2024年02月12日
    浏览(38)
  • Nginx 如何实现负载均衡?

    Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由于其具有丰富的功能和出色的性能,Nginx 广泛应用于 Web 开发、负载均衡、反向代理等场景。在负载均衡方面,Nginx 可以实现基于轮询、IP_HASH、URL_HASH 和其他算法的负载均衡。本文将详细介绍

    2024年01月18日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包