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

1.概要

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。正向代理(VPN)和反向代理的区别在于,VPN代理的是客户端,而nginx代理的是服务端。DAG图(有向无环图)如下:
基于docker使用nginx实现服务器的反向代理和负载均衡_第1张图片

2.docker

从官网拉取nginx镜像

docker search nginx
docker pull nginx
docker images   

红框处代表nginx镜像已经安装成功
基于docker使用nginx实现服务器的反向代理和负载均衡_第2张图片
运行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验证是否成功
基于docker使用nginx实现服务器的反向代理和负载均衡_第3张图片
验证负载均衡算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功。

你可能感兴趣的:(基于docker使用nginx实现服务器的反向代理和负载均衡)