今天在mac上面搭建了一下负载均衡,踩了点坑,记录一下。
我是打算起两个tomcat,然后利用Nginx实现他们的负载均衡。然后都是采用docker容器的方式。
启动tomcat的时候,发现访问ip+端口返回404,没有tomcat的首页,好奇怪,我估计是容器封装的事,后来我在webapps下面创建了文件以后就正常了。启动命令:docker run -d --name tomcata -v /Users/xxx/Documents/ccc/a/:/usr/local/tomcat/webapps -p 9000:8080 tomcat
然后就是nginx的配置了,这里有一个坑是,配置tomcat ip的时候,不能写localhost或者127.0.0.1,我写了我电脑的ip,这个我不知道为啥,但我开始用localhost的时候,会报错,一个帖子里面说的,改了就好了。nginx主要需要配置这个几个:
upstream myserver {
server ip:9000;
server ip:9001;
}
server{
listen 80;
server_name 127.0.0.1;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_pass http://myserver/;
}
}
启动命令是:docker run -d --name nginx_test -v /Users/XXX/Documents/ccc/nginx/:/aa -p 9002:80 nginx
无论是tomcat还是nginx我都做了映射,方便修改文件,对于nginx来说,有两个目录可以记一下:
nginx.conf放在/etc/nginx下面,但是我们不能直接映射这个目录。
重启nginx的文件的目录在/usr/nginx/sbin/下面,但修改了conf文件之后,重启docker也是一样的,因为我通过docker exec -it nginx_test /bin/bash这个命令进入docker以后,run了service nginx stop 发现docker容器也死了。docker这个还在学习中,现在还说不清楚原理,先记录一下现象吧。
最后 我访问http://127.0.0.1:9002/aa/a.html 就看到了tomcat下面的界面了,两个随机切换。
网友评论