5.Docker nginx部署

nginx前置操作

docker pull nginx
docker run -itd --name nginx -p 8080:80 nginx:latest

无法使用vim指令,所以需要进行目录挂载

docker exec -it nginx bash
docker run -itd \
--name nginx01 \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/html:/etc/nginx/html \
-v /home/nginx/log:/usr/log/nginx \
-p 8080:80 \
nginx

第一个-v:挂载nginx的主配置文件,以方便在宿主机上直接修改容器的配置文件

第二个-v:挂载容器内nginx的日志,容器运行起来之后,可以直接在宿主机的这个目录中查看nginx日志

第三个-v:挂载静态页面目录

从之前的nginx配置中获得配置文件,并完成修改

前端项目打包

省略

后端项目打包

省略

发布前端项目

省略

自定义容器

docker run -it --name spring01 --net mynet -p 8081:8080 spring:2.0

nginx常用命令

nginx -t                         #检查配置文件
nginx -s reload                  #重读配置文件
service nginx start              #启动
service nginx stop               #停止
service nginx restart            #重新启动
service nginx reload             #重新加载配置,平滑启动
service nginx status             #查看状态

防火墙命令

firewall-cmd --zone-public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=80/tcp

Error

5.Docker nginx部署_第1张图片

upstream tomcatList{
    server 172.18.0.5:8080 weight=1;
    server 172.18.0.3:8080 weight=2;
    server 172.18.0.4:8080 weight=2;
}

docker run -it --name spring01 --net mynet -p 8081:8080 spring:2.0

端口或者协议不一致

5.Docker nginx部署_第2张图片

location ~^/api/{
    proxy_pass http://tomcatList;
    proxy_redirect default;
}

路径映射存在问题

proxy_pass后面的路径以结尾

#rewrite ^/api(.*)$ /$1 break;重写规则

5.Docker nginx部署_第3张图片 5.Docker nginx部署_第4张图片

 springboot无法识别负载均衡中的_符号

upstream tomcatList{
    server 172.18.0.5:8080 weight=1;
    server 172.18.0.3:8080 weight=2;
    server 172.18.0.4:8080 weight=2;
}

响应超时问题

 检查网段是否互通

docker network connect mynet nginx

完整版本

#服务器的集群
upstream tomcatList {  #服务器集群名字
    server 172.17.0.5:8081 weight=1;  #服务器1   weight是权重的意思,权重越大,分配的概率越大
    server 172.17.0.3:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大
    server 172.17.0.4:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大
} 
    
server {

    listen  80;
    server_name  www.zking.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~^/api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass  http://tomcatList;
        proxy_redirect default;
    }

}

你可能感兴趣的:(nginx,docker,服务器)