jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.24k stars 14.74k forks source link

linux中部署微服务 #4288

Closed ChenZJ0104 closed 1 year ago

ChenZJ0104 commented 1 year ago
版本号:

3.4.3

前端版本:vue3版?还是 vue2版?

vue3

问题描述:

前端请求后端404 linux中配置了hosts文件,以下是部分配置文件信息

nacos部分配置文件: jeecg: signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a uploadType: local domainUrl: pc: http://localhost:3100 app: http://localhost:8051

前端.env.production部分配置: 后台接口父地址(必填) VITE_GLOB_API_URL=/jeecgboot 后台接口全路径地址(必填) VITE_GLOB_DOMAIN_URL=http://192.168.50.128/

前端打开后请求验证码失败: image

nginx配置文件: upstream 192.168.50.128 { server 127.0.0.1:80; } server { listen 80; server_name 192.168.50.128; root /usr/share/nginx/html; location / {

用于配合 browserHistory使用

     try_files $uri $uri/ /index.html;
}
location  /jeecgboot/ {
    proxy_pass         http://127.0.0.1:3100/;
    proxy_redirect off;
    proxy_set_header  Host             $host;
    proxy_set_header  X-Real-IP        $remote_addr;
    set $my_proxy_add_x_forwarded_for $proxy_add_x_forwarded_for;
    if ($proxy_add_x_forwarded_for ~* "127.0.0.1"){
       set $my_proxy_add_x_forwarded_for $remote_addr;
    }
    proxy_set_header   X-Forwarded-For $my_proxy_add_x_forwarded_for;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   html;
}

}

nginx日志: 2022/11/22 11:23:15 [error] 29#29: 9 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: 192.168.50.128, request: "GET /jeecgboot/sys/randomImage/1629428467008?_t=1669116195706 HTTP/1.1", upstream: "http://127.0.0.1:3100/sys/randomImage/1629428467008?_t=1669116195706", host: "192.168.50.128", referrer: "http://192.168.50.128/login?redirect=/dashboard/analysis" 2022/11/22 11:23:15 [error] 29#29: 9 open() "/etc/nginx/html/50x.html" failed (2: No such file or directory), client: 172.17.0.1, server: 192.168.50.128, request: "GET /jeecgboot/sys/randomImage/1629428467008?_t=1669116195706 HTTP/1.1", upstream: "http://127.0.0.1:3100/sys/randomImage/1629428467008?_t=1669116195706", host: "192.168.50.128", referrer: "http://192.168.50.128/login?redirect=/dashboard/analysis" 172.17.0.1 - - [22/Nov/2022:11:23:15 +0000] "GET /jeecgboot/sys/randomImage/1629428467008?_t=1669116195706 HTTP/1.1" 404 555 "http://192.168.50.128/login?redirect=/dashboard/analysis" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52" "-"

截图&代码:

友情提示(为了提高issue处理效率):

ChenZJ0104 commented 1 year ago

后端服务都正常在线,前端也正常启动,就是访问不到后端,可能是我哪个配置地址没有配置正确,开发环境是可以访问的 以下为部分配置文件信息: linux中hosts文件: image

nacos配置文件: spring: datasource: druid: stat-view-servlet: enabled: true loginUsername: admin loginPassword: 123456 allow: web-stat-filter: enabled: true dynamic: druid: initial-size: 5 min-idle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat,wall,slf4j connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver redis: database: 0 host: jeecg-boot-redis password: port: 6379 rabbitmq: host: jeecg-boot-rabbitmq username: guest password: guest port: 5672 publisher-confirms: true publisher-returns: true virtual-host: / listener: simple: acknowledge-mode: manual concurrency: 1 max-concurrency: 1 retry: enabled: true minidao: base-package: org.jeecg.modules.jmreport.,org.jeecg.modules.drag. jeecg: signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a signUrls: /sys/dict/getDictItems/,/sys/dict/loadDict/,/sys/dict/loadDictOrderByValue/,/sys/dict/loadDictItem/,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys uploadType: local domainUrl: pc: http://localhost:3100 app: http://localhost:8051 path: upload: /opt/upFiles webapp: /opt/webapp shiro: excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/,/category/,/visual/,/map/,/jmreport/bigscreen2/** oss: endpoint: oss-cn-beijing.aliyuncs.com accessKey: ?? secretKey: ?? bucketName: jeecgdev staticDomain: ?? elasticsearch: cluster-name: jeecg-ES cluster-nodes: jeecg-boot-es:9200 check-enabled: false file-view-domain: 127.0.0.1:8012 minio: minio_url: http://minio.jeecg.com minio_name: ?? minio_pass: ?? bucketName: otatest jmreport: mode: dev is_verify_token: false verify_methods: remove,delete,save,add,update wps: domain: https://wwo.wps.cn/office/ appid: ?? appsecret: ?? xxljob: enabled: false adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin appname: ${spring.application.name} accessToken: '' logPath: logs/jeecg/job/jobhandler/ logRetentionDays: 30 redisson: address: jeecg-boot-redis:6379 password: type: STANDALONE enabled: true logging: level: org.jeecg.modules.system.mapper : info cas: prefixUrl: http://localhost:8888/cas knife4j: production: false basic: enable: false username: jeecg password: jeecg1314 justauth: enabled: true type: GITHUB: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback WECHAT_ENTERPRISE: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback agent-id: ?? DINGTALK: client-id: ?? client-secret: ?? redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback cache: type: default prefix: 'demo::' timeout: 1h third-app: enabled: false type: WECHAT_ENTERPRISE: enabled: false client-id: ?? client-secret: ?? agent-id: ?? DINGTALK: enabled: false client-id: ?? client-secret: ?? agent-id: ??

前端 .env.production配置文件: 是否启用mock VITE_USE_MOCK = true 发布路径 VITE_PUBLIC_PATH = / 控制台不输出 VITE_DROP_CONSOLE = true 是否启用gzip或brotli压缩 选项值: gzip | brotli | none 如果需要多个可以使用“,”分隔 VITE_BUILD_COMPRESS = 'gzip' 使用压缩时是否删除原始文件,默认为false VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false 后台接口父地址(必填) VITE_GLOB_API_URL=/jeecgboot 后台接口全路径地址(必填) VITE_GLOB_DOMAIN_URL=http://192.168.50.128/ 接口父路径前缀 VITE_GLOB_API_URL_PREFIX= 是否启用图像压缩 VITE_USE_IMAGEMIN= true 使用pwa VITE_USE_PWA = false 是否兼容旧浏览器 VITE_LEGACY = false

linux中docker启动nginx命令: docker run -it -p 80:80 -v /html/dist/:/usr/share/nginx/html/ -v /html/default.conf:/etc/nginx/conf.d/default.conf --name nginx -d nginx

zhangdaiscott commented 1 year ago

你得看java后台日志,是否连上redis

zhangdaiscott commented 1 year ago

image

你这个转发的对吗,人家都是转发到java后台,你这是转的前端接口干嘛

ChenZJ0104 commented 1 year ago

老师您好,重新调整了前端和nginx配置文件: linux中hosts配置文件: image

前端.env.production 配置: VITE_GLOB_API_URL=/jeecgboot VITE_GLOB_DOMAIN_URL=http://jeecg-boot-gateway:9999

gateway服务端口: image

dockerfile配置文件: image

请求验证码返回502,如下nginx日志: image

zhangdaiscott commented 1 year ago

http://vue3.jeecg.com/3028878

ChenZJ0104 commented 1 year ago

老师您好,是按照文档配置的,还是nginx502: 2022/11/26 12:38:57 [error] 29#29: *55 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.50.1, server: , request: "GET /jeecgboot/sys/randomImage/1629428467008?_t=1669466338674 HTTP/1.1", upstream: "http://127.0.0.1:9999/sys/randomImage/1629428467008?_t=1669466338674", host: "192.168.50.128", referrer: "http://192.168.50.128/login?redirect=/dashboard/analysis"

zhangdaiscott commented 1 year ago

参考这个

upstream boot3.jeecg.com {
  server 127.0.0.1:80;
 }
server {
    listen       80;
    server_name  boot3.jeecg.com;
    #前端打的dist资源存放目录
    root         /srv/www/project;

    location / {
         # 用于配合 browserHistory使用
         try_files $uri $uri/ /index.html;
    }

    location  /jeecgboot/ {
        #后台接口地址(我们部署去掉了/jeecg-boot项目名,如果你有请加上)
        proxy_pass         http://127.0.0.1:8080/;
        proxy_redirect off;
        #真实IP获取
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        set $my_proxy_add_x_forwarded_for $proxy_add_x_forwarded_for;
        if ($proxy_add_x_forwarded_for ~* "127.0.0.1"){
           set $my_proxy_add_x_forwarded_for $remote_addr;
        }
        proxy_set_header   X-Forwarded-For $my_proxy_add_x_forwarded_for;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

http://vue3.jeecg.com/2503893