【nginx】实现服务端的负载均衡

nginx和ribbon的区别:

nginx实现服务端的负载均衡

ribbon实现客户端的负载均衡,请求时可以轮询/随机的方式请求接口

本文以docker下载的nignx进行部署

一、将项目打jar包,放到服务器上,并编写dockerfile文件

dockerfile和jar包要放在同一个目录下,注意需要暴露的端口要在防火墙设置好

dockerfile编写如下:

# 拉取jdk8作为基础镜像
FROM java:8
# 作者
MAINTAINER jane <[email protected]>
# 添加jar到镜像并命名为user.jar
ADD spring-test-1.0-SNAPSHOT.jar spring-test.jar
# 镜像启动后暴露的端口
EXPOSE 8071
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","spring-test.jar"]

二、将项目放到docker里,并运行

(一)生成docker镜像

注意在最后面有一个 点

docker build -t spring-test .

(二)运行该镜像

docker run -d --name spring-test -p 8071:8071 spring-test

三、nginx

用docker下载nginx

docker pull nginx

运行nginx

docker run --name nginx -p 9091:80 -d nginx

访问ip:80就可以看到 nginx的欢迎页面

另外创建目录将nginx的www 日志 配置文件放好

mkdir -p /server/nginx/www
mkdir -p /server/nginx/logs
mkdir -p /server/nginx/conf

拷贝nginx的配置文件到conf

docker cp 541cae70ae15:/etc/nginx/nginx.conf /server/nginx/conf

这个时候再访问ip:80是没有东西的,因为www文件夹没有html页面,所以403

要在www文件夹创建html

自己申请好域名后,修改/server/nginx/conf下的nginx.conf文件

vim nginx.conf
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;

    server{
        listen 80;
        server_name 你的域名;
        location / {
                proxy_pass http://127.0.0.1:8071; #这个端口按项目实际修改
}
}
}

最主要是http下的server配置

成功后:

猜你喜欢

转载自blog.csdn.net/kanseu/article/details/125650575