docker上配置nginx负载均衡

采用ubuntu系统,docker安装自行百度

1.安装tomcat

docker run -d -p 8088:8080 tomcat
docker run -d -p 8089:8080 tomcat

安装两个实例,端口分别为8088,8089

2.安装nginx

docker run -p 8080:80 -d docker.io/nginx

安装nginx,端口为8080。在测试的过程中,发现ubuntu上对80端口有限制,不能直接访问,所以映射为8080

3.修改nginx配置

3.1查看实例

    sudo docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    516b1562b0e3        nginx               "nginx -g ‘daemon of…"   21 minutes ago      Up 2 minutes        0.0.0.0:8080->80/tcp                musing_dewdney
    36e48585253f        tomcat              "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8089->8080/tcp              keen_wescoff
    7eb77e6a33e5        tomcat              "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8088->8080/tcp              frosty_grothendieck
    2069f54ea331        mysql:5.7           "docker-entrypoint.s…"   3 hours ago         Up 3 hours          0.0.0.0:3306->3306/tcp, 33060/tcp   mysqltest

3.2进入nginx的bash

sudo docker exec -it 516b1562b0e3 bash

3.3修改配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    proxy_buffer_size 128k;
    proxy_buffers 32 128k;
    proxy_busy_buffers_size 128k;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # 注意,这里的server名字即org.tonny.balance不能带下划线,tomcat是上面安装的tomcat
    upstream org.tonny.balance {
        server 192.168.126.128:8088 weight=1;
        server 192.168.126.128:8089 weight=1;
    }

    server {
        #注意,这里保留80,因为前面的docker运行命令,会映射80端口
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # 不带数据的请求
        location / {
            root   html;
            index  index.html index.htm;
            #访问映射
            proxy_pass   http://org.tonny.balance;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3.4重启nginx

sudo docker restart 516b1562b0e3

4.测试

通过ip,端口访问即可

原文地址:https://www.cnblogs.com/supertonny/p/10602695.html

时间: 2024-08-02 07:07:13

docker上配置nginx负载均衡的相关文章

Centos配置Nginx负载均衡详解

在日常网络数据开发中,我们对服务器的处理能力要求很高,但是在服务器有限的情况下,怎么才能更好的利用服务器资源,使得我们的服务器最大限度发挥自己的作用呢?负载均衡是一种很好的办法.     哪什么是Nginx负载均衡呢? Nginx是一个轻量级的.高性能的WebServer,他主要可以干下面两件事: (1).作为http服务器(和apache的效果一样) (2).作为反向代理服务器实现负载均衡 现在Nginx到处都可以见到,经常会看到宕机后的网页会显示nginx的字样,这也说明Nginx由于高性能

配置 Nginx 负载均衡监测节点状态

淘宝技术团队开发了一个 Tengine ( Nginx 的分支 ) 模块 nginx_upstream_check_module ,用于提供主动式后端服务器健康检查,通过它可以检测后端 realserver 的健康状态,如果后端 realserver 不可用,则所有的请求就不会转发到该节点上,需要通过打补丁的方式将该模块添加到 Nginx 中. 1.安装 nginx_upstream_check_module 模块 cd /usr/local/srcwget https://codeload.g

linux下配置nginx负载均衡例子

准备2台虚拟机: 分别在两个虚拟机上安装tomcat,并在服务器A安装nginx,其中nginx端口设置为了 70. 服务器A的tomcat安装目录: 服务器B的tomcat安装目录: 服务器A的nginx安装目录: 准备test.jsp文件,分别上传到tomcat的 ROOT 目录下: 上传到服务器A的test.jsp : <%@ page language="java" contentType="text/html; charset=UTF-8" page

配置nginx负载均衡

执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes  2; events {     worker_connections  1024; } http {     include       mime.types;     default_type  application/octet-stream;     sendfile        on;     keepalive_timeout  65;

企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router Redundancy Pro

docker 搭建 nginx负载均衡

本文描述如何在一台机器上搭建nginx负载均衡,我将会启动3个nginx的docker,分别是1台前置nginx负责分发,后面2台负责处理请求. 首先我切换到/usr/local/docker/文件夹下,这个文件夹是专门用来做docker映射文件夹用的,docker里的重要的文件夹会映射到这里,在这里执行 mkdir nginx mkdir nginx01 mkdir nginx02 nginx下存储的是前置nginx的文件 nginx01和nginx02负责存储后边两台nginx服务器的文件

nginx负载均衡篇一、nginx配置

如果不知道在Linux下如何安装nginx请参考前一篇文章. nginx负载均衡的配置较apache要简单许多,这里用nginx做负载均衡将不再描述tomcat集群的配置,如果对tomcat集群配置有不懂的地方,请参考Apache反向代理结合Tomcat集群来实现负载均衡(三).tomcat集群文章进行配置.下边进入正题,开始配置nginx负载均衡. 先来看下nginx的完全配置: #user nobody; worker_processes 1; #error_log logs/error.l

docker案例篇之nginx负载均衡

#搭建nginx镜像 docker run -it --privileged --name tmp centos /usr/sbin/init ## 另外打开一个ssh窗口 docker ps docker exec -it tmp /bin/bash ## 使用yum安装nginx rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum ins

用docker搭建nginx负载均衡测试环境

昨天收了一篇好文章 nginx常用功能全揭秘,想着今天来按照步骤配置一下nginx代理的,结果在使用docker的时候一直出问题,才诞生了这篇关于docker配置nginx负载均衡. 首先在宿主机上创建两个两个目录n1,n2,分别作为两台nginx服务器的目录. mkdir -p n1 n2 然后分别在目录里新建一个index.html文件,并输入内容作为nginx集群配置成功的后页面呈现的标识. cd n1 && echo 'this is n1' >> index.html