docker 安装 Tomcat Nginx 运行若依分离版-前端vue 持久化,验证码解决404 500
安装jdk安装Tomcat慎用 docker pull tomcat 隐患极大下载Tomcat官网
安装jdk
Tomcat 配置失败 直接看下面的 nginx
安装Tomcat
下载镜像docker pull tomcat
下载文件(0积分)
conf.tar.gz
webapps.tar.gz
必须有 点击下载或自己备份,方法如下
文件来源-
一条条顺序执行
docker run --name tomcat -p 8082:8080 -d tomcat
docker exec -it tomcat bash
cd /usr/local/tomcat
tar -zcvf /usr/local/tomcat/conf.tar.gz conf
rm -rf webapps
mv webapps.dist webapps
tar -zcvf /usr/local/tomcat/webapps.tar.gz webapps
exit
cd /home/docker/tomcat
docker cp tomcat:/usr/local/tomcat/conf.tar.gz /home/docker/tomcat
docker cp tomcat:/usr/local/tomcat/webapps.tar.gz /home/docker/tomcat
tar -zxvf conf.tar.gz
tar -zxvf webapps.tar.gz
ls
开始映射持久化目录
# 持久化目录 /home/docker/tomcat
cd /home/docker/tomcat
mkdir logs #持久化-日志
tar -zxvf conf.tar.gz #持久化-配置
tar -zxvfwebapps.tar.gz #持久化-应用
启动容器
docker run --name tomcat -p 8082:8080 -v /home/docker/tomcat/webapps:/usr/local/tomcat/webapps -v /home/docker/tomcat/logs:/usr/local/tomcat/logs -v /home/docker/tomcat/conf:/usr/local/tomcat/conf -d tomcat
404-
- 查看webapps和conf和logs文件夹, 均不为空才正常
删除webapps.dist
docker exec -it tomcat bash
# 备份
mv webapps.dist back.webapp
# 删除
# rm -rf webapps.dist
映射目录不要删除或移动
里面的子目录可以增删
# 这几个目录有变动则映射失效
/home/docker/tomcat/webapps
/usr/local/tomcat/webapps
/home/docker/tomcat/logs
/usr/local/tomcat/logs
/home/docker/tomcat/conf
/usr/local/tomcat/conf
成功
此时 访问 http://192.168.232.130:8082/
根目录为
/home/docker/tomcat/webapps
加载若依
若依项目在ruoyi-ui
下运行 npm run build:prod
会在ruoyi-ui
下生成dist
文件夹: 前端打包文件
Tomcat配置
修改server.xml,Host节点下添加
<Context docBase="" path="/" reloadable="true" source=""/>
修改完传到宿主机-持久化目录即可
dist目录
dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">
<display-name>Router for Tomcat</display-name>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
压缩-上传-解压
前台打开
端口映射为8082
浏览器
成功
至此, 前台部署完成, 静态资源加载成功
验证码问题-请求后端失败
后端部署到另一个docker镜像里, 映射端口为8081,
经过排查 tomcat无 vue-cli-service 请求重定位,
待定 可能解决办法 再装个nodjs 做请求转发
Nginx 部署
安装nginx
# 搜索镜像并安装
docker search nginx
docker pull nginx:latest
# 运行
docker run --name nginx -p 80:80 -d nginx
# 获取一份默认配置
docker cp nginx:/etc/nginx/nginx.conf /home/docker/nginx/conf/nginx.conf
# default.conf 稍后会用到
docker cp nginx:/etc/nginx/conf.d/default.conf /home/docker/nginx/conf/
#删除刚才的
docker stop nginx
docker rm nginx
# 映射目录
docker run --name nginx -v /home/docker/nginx/web:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -p 80:80 -d nginx
验证持久化
在宿主机持久化目录web新建index.html 随便写点内容
前台 192.168.232.130:80 -此链接为虚拟机内centos
访问ip路径
部署若依
ok 将dist解压至持久化目录 -v /home/docker/nginx/web
配置nginx
参考配置 这个配置是前后一体化配置使用的 不能通用 下载配置(0积分)
将配置放入 /home/docker/nginx/conf
重启镜像 docker restart nginx
访问 http://192.168.232.130:80
有验证码 后台已调通
ok
配置文件详解
http->server->location /
下
root /usr/share/nginx/html;
/usr/share/nginx/html
为default.conf
文件中的默认配置 无需改动
http->server
下
listen 80;
server_name 192.168.232.130;
location /prod-api/{
...
proxy_pass http://192.168.232.130:8081/;
}
是将所有指向192.168.232.130:80 的链接转发到192.168.232.130:8081(后端)中
nginx代理详解
#在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径,去掉匹配路径;
#如果没有/,表示相对路径,把匹配的路径部分也给代理走。
#假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。
#第一种:
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
#代理到URL:http://127.0.0.1/test.html
#第二种(相对于第一种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1;
}
#代理到URL:http://127.0.0.1/proxy/test.html
#第三种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}
#代理到URL:http://127.0.0.1/aaa/test.html
#第四种(相对于第三种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1/aaa;
}
#代理到URL:http://127.0.0.1/aaatest.html
即vue.config.js
中的链接转发
devServer: {
host: '0.0.0.0',
port: port,
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://192.168.232.130:8081`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
disableHostCheck: true
},
开机启动
docker update --restart=always nginx
至此完工
更多推荐
所有评论(0)