控制层测试代码:
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
@Controller
@RequestMapping("/test")
public class TestController {
@GetMapping("")
@ResponseBody
public String test() {
InetAddress localHost = null;
try {
// 返回服务器地址
localHost = Inet4Address.getLocalHost();
return localHost.getHostAddress();
} catch (UnknownHostException e) {
return "未知ip";
}
}
}
本地方法测试:
打好的包放在一台linux服务器上: /opt/springboot/test.jar
新建dockerFile文件,也放在同一个目录下: /opt/springboot/dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER lzf
COPY *.jar /jar/test.jar
# 正常服务启动
CMD ["java", "-Xms200m", "-Xmx200m", "-jar","/jar/test.jar"]
在服务器上部署两个springboot容器。
切换到 /opt/springboot/ 目录下,制作docker镜像 docker build -t test .
# 部署的时候指定network,可以方便用容器名互相访问
docker network create my_network
# 我的nginx是用docker部署的,也是在my_network下
docker run -d --name test_1 --network my_network test
docker run -d --name test_2 --network my_network test
配置nginx负载均衡
配置nginx.conf文件:
server {
listen 80;
location / {
proxy_pass http://balance;
}
}
upstream balance{
# weight 代表权重,可以不设置。注意:想要禁用这个server,不能设置为0,会报错,可以设置为backup: server 172.19.0.3:8080 backup;
server 172.19.0.3:8080 weight=1;
server 172.19.0.4:8080 weight=5;
# 如果nginx和test_1和test_2都是在同一个network下,就能使用容器名进行访问
#server test_1:8080;
#server test_2:8080;
}
# 用以下命令可以查看容器的ip
# docker inspect test_1 | grep IPAddress
# docker inspect test_2 | grep IPAddress
改nginx配置记得重新加载: nginx -s reload
效果:
参与评论
手机查看
返回顶部