基于docker使用nginx实现服务器的反向代理和负载均衡

1.概要

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。正向代理(VPN)和反向代理的区别在于,VPN代理的是客户端,而nginx代理的是服务端。DAG图(有向无环图)如下:
在这里插入图片描述

2.docker

从官网拉取nginx镜像

docker search nginx
docker pull nginx
docker images   

红框处代表nginx镜像已经安装成功
在这里插入图片描述
运行nginx镜像

docker run -d --name nginx-6542 -p 6542:80 nginx:latest

将nginx.conf文件拷贝到宿主机器

docker cp [id]:/etc/nginx/nginx.conf d:/nginx/nginx.conf

修改本机的nginx.conf文件


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
	upstream tomcat_nginx{
	   server 10.10.11.37:6543 weight=5;
	   server 10.10.11.37:6544 weight=5;
	   server 10.10.11.37:6545 weight=5;
	}
	
	server {
	    listen 80;
	    server_name 10.10.11.37;
		location /{
	       proxy_pass http://tomcat_nginx;
	  }
	}
}

启动三个tomcat服务器

docker run -d -it -v d:/xxx.war:/usr/local/tomcat/webapps/xxx.war -p 6543:8080 tomcat:latest
docker run -d -it -v d:/xxx.war:/usr/local/tomcat/webapps/xxx.war -p 6544:8080 tomcat:latest
docker run -d -it -v d:/xxx.war:/usr/local/tomcat/webapps/xxx.war -p 6545:8080 tomcat:latest

删除之前的nginx实例

docker stop [id]
docker rm  [id]

将编辑过的nginx文件挂载到容器

docker run -d --name nginx-6542 -v d:/nginx/nginx.conf:/etc/nginx/nginx.conf -p 6542:80 nginx:latest

打开浏览器输入:10.10.11.37:6542验证是否成功
在这里插入图片描述
验证负载均衡算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值