2.6 Docker部署多个前端项目

2.6 Docker部署多个项目

三. 部署前端项目

1.将前端项目打包到同一目录下(tcm-ui)
2. 部署nginx容器
docker run --name=nginx -p 9090:9090 -p 9091:9091 -d nginx
3. 复制nginx.conf文件到主机目录
docker cp nginx:/etc/nginx/nginx.conf /root/java_project/tcm/tcm-service/conf/nginx.conf 

原因:以防nginx.conf格式是文件夹导致挂载失败

4. 修改配置nginx.conf文件

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/json;

    sendfile        on;
    
    keepalive_timeout  65;

    server {
        listen       9090;
        # 指定nginx中前端项目所在的位置
        location / {
            root /usr/share/nginx/html/tcm-front;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # 反向代理
        location /api {
            rewrite /api/(.*)  /$1 break;
            # 对应后端接口路径
            proxy_pass http://47.120.15.23:8888;
        }
    }
    server {
        listen       9091;
        # 指定前端项目所在的位置
        location / {
            root /usr/share/nginx/html/tcm-back;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location /prod-api {
            rewrite /prodapi/(.*)  /$1 break;
            proxy_pass http://47.120.15.23:8880;
        }
    }
}

注意:

  • conf和tcm-ui文件夹放在同一目录下
  • 在开启反向代理中的/api和/prod-api分别为前台后台中.env文件(生产环境)中的base api,如下:
image-20240417010825403 image-20240417010056495
5. 删除之前安装的nginx
docker rm -f nginx
6. 部署nginx容器
docker run -d \
  --name nginx \
  -p 9090:9090 \
  -p 9091:9091 \
  -v /root/java_project/tcm/tcm-service/tcm-ui:/usr/share/nginx/html \
  -v /root/java_project/tcm/tcm-service/conf/nginx.conf:/etc/nginx/nginx.conf \
  --network tcm \
  nginx
7. 测试

前台网页:47.xxx.15.23:9090

后台网页:47.xxx.15.23:9091

8. 常见问题
  • 报错403:反向代理配置错误(一般为base api错误)
  • 页面无法访问:配置文件中前端路径错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值