1. 常见问题

1.1. 打包发布服务器依赖包里面的js文件404

采用nginx代理静态资源的时候通常会映射到具体的某个目录,需要手动将依赖包的js文件复制到静态目录文件夹下。或者单独的增加一条js映射例如:自定义包里面的 index.js 文件

   location ~ /(static/mdiy) {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        add_header Access-Control-Allow-Origin $http_origin;
        add_header Access-Control-Allow-Credentials true;
    }

如果没有采用nginx代理,可能是打包问题,必须要在父工程ms-parent进行打包

1.2. 内网环境如何搭建多站点的站群环境

需要配合ng代理实现,利用ng监听不同端口,代理到服务的真实端口,例如:(详细配置参考发布部署-nginx代理配置)

    ···
    server {
        listen 8081;
        ···
        location / {
            # 根据实际系统启动等地址配置
            proxy_pass http://127.0.0.1:5108;
            # 注意:如果使用了堡垒机端口映射,例如:映射端口8989 -> nginx端口80 -> mcms端口8080,需要将mcms端口8080修改成8989,如果遇到访问地址不正确,可以将$host:$server_port直接填写外网ip或域名与端端口(必须与实际端口一致)
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Credentials true;
        }
        ···
    }
    server {
        listen 8082;

        ···

        location / {
            # 根据实际系统启动等地址配置
            proxy_pass http://127.0.0.1:5108;
            # 注意:如果使用了堡垒机端口映射,例如:映射端口8989 -> nginx端口80 -> mcms端口8080,需要将mcms端口8080修改成8989,如果遇到访问地址不正确,可以将$host:$server_port直接填写外网ip或域名与端端口(必须与实际端口一致)
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Credentials true;
        }
        ···
    }
    ···

[!tip]注意:原则上我们是不推荐内网环境单服务器使用站群,在内网情况下,首页访问不要用ip+port直接访问,模板的首页都要使用{ms:global.html/}/index.html 不要使用host标签

1.3. 部署后,验证码始终提示错误

  1. 部署没有将头信息进行代理导致

  2. 如果是分布式部署,需要自行二次开发增加会话共享机制,参考博文(政务版本参考文档修改即可)

1.4. 部署后,部分验证码不显示

将相对应的请求验证码路径添加.do,如/code?t=改成/code.do?t=

1.5. centos部署后,登录页面验证码不显示

装fontconfig更新字体缓存 参考博文:https://www.cnblogs.com/zk2020/p/15716730.html

1.6. 静态资源更新问题

修改css、js静态资源等静态资源后,访问发现静态资源没更新

  1. 清空访问的静态资源,重新访问,确定访问的资源路径正确

  2. 请求资源后,按住shift刷新

  3. 请求静态资源后拼接参数,让浏览器重新请求资源

  4. 如果使用了国产中间件,需要在中间件中修改配置,具体修改需要中间件厂商配合

    [!tip]示例 如在金蝶中,需要修改domains/mydoamin/config下的apusic.conf,修改,value修改为需要生效的时间;生产上线后需要关闭,会占用服务器资源;

1.7. nginx部署,上传图片时提示Request Entity Too Large 状态码413

按需配置 client_max_body_size

1.8. 通过nginx 配置后 css和js文件 403 无法访问

一般是文件权限与nginx的启动用户权限不一致导致,最简单的方法是直接将nginx 启动用户修改为 root 启动

1.9. 多服务共享模板和静态文件

使用rsync或者做共享,文件服务能达到共享就行 如nfs、fastdfs

1.10. jar包部署好模板无法上传、百度编辑器显示配置错误

  1. 执行指令需要在jar的当前目录执行
  2. 确保yml中ms.upload.enable-web的配置为true
  3. 确保部署的资源(static、upload、template)与jar在同一级,可参考部署文档的资源结构
  4. nginx 配置
location / {
  proxy_pass http://localhost:8080;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~ .*\.(do|jsp|index)$ {
  proxy_pass http://localhost:8080;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#静态资源、生成的页面、上传的文件、模板目录
location ~ /(static|html|upload|templets){
  #缓存时间 7天
  expires 7d;
  #项目部署位置,当前项目部署在/home/mcms
  root /home/mcms;
}

1.11. 打包懒人jar包运行时百度编辑器错误

将static目录复制到jar包同级目录

1.12. 缓慢http拒绝服务攻击

https://www.cnblogs.com/wsx2019/p/17611226.html

1.13. CORS跨域问题

https://zhuanlan.zhihu.com/p/661237362

1.14. html/1伪静态处理

1、配置nginx ,将所有的.html 映射到 项目/html/1文件夹

2、将模版里面所有链接去掉{ms:global.url/}标签

1.15. https访问问题

使用springboot加证书的方式访问没有问题,如果用nginx代理访问时,{ms:global.host/}标签解析后还是http的形式,可以将模版资源采用//的方式,例如:

<script src="//mingsoft.net/xxx.js"/>

1.16. ${field.hit}失效

需要将field.hit的请求进行代理,/cms/content/文章id/hit.do

1.17. 登录验证码输入错误,报文件找不到

资源文件读取报错,Linux默认读取en的资源文件,导致未找到该文件,可以在java启动的指令配置服务cn 的资源文件

#docker run --name mcms -d -v /home/mcms:/home -p 8080:8080 -w /home   --restart=always --privileged=true  store/oracle/serverjre:8 java -Duser.timezone=GMT+08 -Duser.language=zh -Duser.region=CN  -Dspring.config.location=/home/application.yml,/home/application-dev.yml -jar mcms.jar

1.18. 数据库的时间对不上,少了8个小时

java 启动配置时区-Duser.timezone=GMT+08

#docker run --name mcms -d -v /home/mcms:/home -p 8080:8080 -w /home   --restart=always --privileged=true  store/oracle/serverjre:8 java -Duser.timezone=GMT+08 -Duser.language=zh -Duser.region=CN  -Dspring.config.location=/home/application.yml,/home/application-dev.yml -jar mcms.jar

1.19. 管理页面WEB-INF/manger单独配置在jar外面,修改部分ftl避免重新jar打包

修改: application.yml template-loader-path

template-loader-path: file:WEB-INF/,file:WEB-INF/manager,classpath:/,classpath:/WEB-INF/manager,classpath:/WEB-INF

1.20. Tomcat部署路径问题

  1. tomcat部署会多一层路径,默认多的路径为war包名称

  2. tomcat可以放到root下,避免多一层路径

1.21. Tomcat部署驱动加载问题

如果遇到tomcat启动不加载驱动问题,可以手动把驱动放到lib包下

1.22. Tomcat启动war包没有看到日志信息

默认在Tomcat启动脚本目录,application.yml中logging.file.name参数可按需配置

1.23. 宝兰德部署启动解不开war包

检查war包中是否包含web.xml文件,如果有需要手动解压到部署目录并且删除web.xml文件,在打包时需排除tomcat依赖。

[!tip]部署后出现部分页面404,若tomcat下运行没有问题本质上也是大概率这些原因

1.24. log 打印文件未找到

1.war包使用Tomcat启动,默认log文件在(当前执行指令目录)bin目录

可修改log文件路径

2.jar包log文件在当前执行java指令目录,避免全部在jar同级目录可自行配置目录

1.25. 东方通部署

1.25.1. 编码问题

需要在 HTTP通道管理 中设置URL编码格式为UTF-8

1.25.2. 页面访问404

需要把项目中的WEB-INF/web.xml删除掉

1.26. 金蝶部署

  1. 打包方式修改为war
  2. 排除spring-boot-start-web自带的tomcat依赖
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
     <!--移除内嵌tomcat-->
     <exclusions>
         <exclusion>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
         </exclusion>
     </exclusions>
    </dependency>
    
  3. 添加Servlet依赖
    <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>3.1.0</version>
     <scope>provided</scope>
    </dependency>
    
  4. 修改入口方法

    @SpringBootApplication
    public class MSApplication extends SpringBootServletInitializer {
     public static void main(String[] args) {
         SpringApplication.run(MSApplication.class, args);
     }
    
     @Override
     protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MSApplication.class);
     }
    }
    
Copyright © mingsoft.net 2021 all right reserved,powered by Gitbook该文件修订时间: 2024-08-09 14:13:30

results matching ""

    No results matching ""

    results matching ""

      No results matching ""