Nginx+Tomcat+maven 热部署项目及服务器配置

前后端分离项目的部署实践:
    环境:Nginx,Tomcat7,Tomcat9,centOS7,macOS

1.Nginx,Tomcat的安装
    下载Nginx压缩包,解压,生成Makefile文件,make,make install(安装在/usr/local下)
    下载Tomcat压缩包,解压,拷贝到指定文件夹(cp -r src dest)

2.使用Nginx作为HTTP服务器,处理前端静态资源
    在Nginx下 html的同级目录建立了 前端工程目录 article,上传项目源码到新建文件下
        Mac文件上传命令:root: scp jquery.min.js user@ip:/usr/local/nginx/artical/assets/js/jquery.min.js

3.配置Nginx虚拟主机,提供服务

4.配置Tomcat,使用Tomcat-maven插件,热部署后端项目
    使用默认的端口配置,增加tomcat-user.xml中,管理端用户角色配置配置,以使用manager应用的服务

5.修改springboot项目启动类及pom文件
    修改启动类,实现方法创建启动类实例


    修改pom文件,增加Tomcat插件,设置上传的服务器路径,打包名称,用户名,密码,修改打包为war包

    执行:mvn tomcat7:redeploy -DskipTests 跳过测试,进行打包
常见问题:
    connect refused:Tomcat服务器未启动
    Tomcat manager invoke failed:用户角色密码未配置正确
    broken pipe:上传包超过限制,修改manager的web.xml的文件大小配置
    
    打包后丢失资源文件,application.yml,mapper文件等:pom build配置中加入resources配置,打包时原有的mapper文件会再次生成,可能会在原有文件追加,
    内容重复,导致mapper文件出错,在Tomcat启动时会报错,mapper解析失败导致spring容器无法初始化bean
    mapper文件没有打包进去时,服务调用时会报错,unbind mapper,提示没有mapper映射文件
    启动类扫描mapper配置的应该是mapper接口的包路径

    上传war包成功后,Tomcat能正常启动,访问时有404错误:服务器jdk版本要和项目打包版本一致
    Tomcat7部署完后启动,报错,ElException:是lib下el***.jar版本太低,可以拷贝一个高版本如Tomcat9下的包替换就可以
  

6.后端部署完成后,配置Nginx代理,解决js跨域问题,配置如下


    upstream 中服务不要使用_,否则可能服务识别。
    重启,或重新加载 ./sbin/nginx -s reload [reopen|stop]
    Tomcat部署应用为artical,桌面端修改/etc/host 模拟域名访问,
    Nginx对静态资源返回前端应用的内容,调用服务时,匹配/article/的请求,转给8080端口下的Tomcat中的服务

7.MySQL使用的是主机上的库,数据库远程访问出错
    修改数据库访问用户的host限制为 %
    mysql -uroot -p
    use mysql
    update user set host = '%' where user = 'root';
    flush privileges;

8.主机上访问测试
    

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读