一、该问题的重现步骤是什么?
0.使用bladex/script/docker/app/deploy.sh 部署,部署过程中发现无法获取harbor镜像,修改docker-compose.yaml中的image地址后,并重新制作report,成功启动所有docker,其他未作调整:
Saber项目直接使用yarn build 生成 dist文件;
上传dist下所有文件至 docker app_web-nginx_1 /usr/share/nginx/html/目录:
3.浏览器访问 http://192.168.1.102:8000,出现未知错误:
4.F12调试发现500错误:
5.WEB-NGINX配置文件如下:
/ # cat /etc/nginx/nginx.conf
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
upstream gateway {
server 172.30.0.81;
server 172.30.0.82;
server 172.30.0.83;
}
server {
listen 8000;
server_name web;
root /usr/share/nginx/html;
location / {
}
location ^~ /oauth/redirect {
rewrite ^(.*)$ /index.html break;
}
location ^~ /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://gateway;
}
}
}
/ #
二、你期待的结果是什么?实际看到的又是什么?
正常登录,实际api调用500错误
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladeX/最新版/CentOS7/Docker 19
四、请提供详细的错误堆栈信息,这很重要。
浏览器报错,消息如上
五、若有更多详细信息,请在下面提供。
无
-
docker 私网 信息如下:
Container Name IPv4 Address IPv6 Address MacAddress Actions app_nacos_1 172.30.0.48/16 - 02:42:ac:1e:00:30
app_blade-admin_1 172.30.0.5/16 - 02:42:ac:1e:00:05
app_blade-turbine_1 172.30.0.12/16 - 02:42:ac:1e:00:0c
app_blade-zipkin_1 172.30.0.2/16 - 02:42:ac:1e:00:02
app_blade-log_1 172.30.0.10/16 - 02:42:ac:1e:00:0a
app_blade-gateway2_1 172.30.0.82/16 - 02:42:ac:1e:00:52
app_blade-system_1 172.30.0.13/16 - 02:42:ac:1e:00:0d
app_blade-auth1_1 172.30.0.91/16 - 02:42:ac:1e:00:5b
app_blade-report_1 172.30.0.98/16 - 02:42:ac:1e:00:62
app_blade-user_1 172.30.0.11/16 - 02:42:ac:1e:00:0b
app_blade-desk_1 172.30.0.9/16 - 02:42:ac:1e:00:09
app_blade-resource_1 172.30.0.7/16 - 02:42:ac:1e:00:07
app_blade-auth2_1 172.30.0.92/16 - 02:42:ac:1e:00:5c
app_blade-gateway1_1 172.30.0.81/16 - 02:42:ac:1e:00:51
app_blade-flow_1 172.30.0.8/16 - 02:42:ac:1e:00:08
app_blade-nginx_1 172.30.0.14/16 - 02:42:ac:1e:00:0e
app_sentinel_1 172.30.0.58/16 - 02:42:ac:1e:00:3a
app_blade-redis_1 172.30.0.4/16 - 02:42:ac:1e:00:04
app_seata-server_1 172.30.0.68/16 - 02:42:ac:1e:00:44
app_web-nginx_1 172.30.0.6/16 - 02:42:ac:1e:00:06
讨论(0)
-
1. 日志显示的是connect refused,无法链接,说明是网络的问题,无法连接到172.30.0.91的服务
2. 所以你需要看一下nacos的服务是否都注册成功, 你需要把nacos注册的服务已经注册ip也贴一下,另外使用docker logs -f xxx看一下服务启动是否成功
3. 如果内网地址不通,访问的话自然会拒绝请求,还有docker部署需要在一台服务器内,如果是多台服务器需要借助docker swarm来达到内网互通
4. 部署的时候会有两个nginx,一个nginx端口8000用于部署前端,一个nginx端口88用于对外暴露网关,你可以使用宿主机ip:88端口的地址来测试一下后端接口是否已经调通,具体看:https://sns.bladex.cn/article-14982.html
5. 你只部署了gateway1和gateway2,分别对应子网ip81、82,那么webnginx反向代理的83就可以删掉了
作者追问:2020-10-06 13:01
#1. docker是单台服务器安装
#2. Nacos服务列表
服务名
分组名称
集群数目
实例数
健康实例数
触发保护阈值
操作
blade-user
DEFAULT_GROUP
1
1
1
false
blade-auth
DEFAULT_GROUP
1
2
2
false
blade-zipkin
DEFAULT_GROUP
1
1
1
false
blade-report
DEFAULT_GROUP
1
1
1
false
blade-admin
DEFAULT_GROUP
1
1
1
false
blade-turbine
DEFAULT_GROUP
1
1
1
false
blade-desk
DEFAULT_GROUP
1
1
1
false
blade-log
DEFAULT_GROUP
1
1
1
false
blade-system
DEFAULT_GROUP
1
1
1
false
blade-gateway
DEFAULT_GROUP
1
2
2
false
服务名
分组名称
集群数目
实例数
健康实例数
触发保护阈值
操作
blade-resource
DEFAULT_GROUP
1
1
1
false
#3. Nacos注册在172.30.0.48

#4. 88端口是通的,88/doc.html能够访问,但“授权模块”“工作台模块”出现一样的报错,只有系统模块能够正常加载:

#5. gateway 83已经从nginx配置中删除,还是没效果。
回答:
2020-10-06 13:08
那就说明是服务没有完全部署成功,你到每个docker服务使用docker logs -f xxx 看看,对应到blade-auth、blade-gateway、blade-user等等服务打印的日志是什么
还有就是使用postman越过前端,直接调用token接口看看是否可以正确返回,如果无法返回,就说明与前端无关了,主要去排查部署的后端服务问题,具体帖子:https://sns.bladex.cn/article-14982.html
一般情况下,docker单服务器部署遇到问题大多是网段、naocs配置未读取导致的错误,从而无法正常调用,你需要着重去排查下
作者追问:2020-10-06 13:10
无法访问的 8100是blade-auth服务:

作者追问:2020-10-06 13:16
2020-10-06 09:34:08.243 WARN 1 --- [ing.beat.sender] com.alibaba.nacos.client.naming : failed to request http://172.30.0.48:8848/nacos/v1/ns/instance/beat?app=blade-auth&namespaceId=public&port=8100&clusterName=DEFAULT&ip=172.30.0.91&serviceName=DEFAULT_GROUP%40%40blade-auth&encoding=UTF-8 from 172.30.0.48,
2020-10-06 09:34:08.244 ERROR 1 --- [ing.beat.sender] com.alibaba.nacos.client.naming : [NA] failed to request ,
,
java.net.ConnectException: Connection refused (Connection refused),
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_265],
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_265],
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_265],
at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_265],
at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_265],
at sun.net.NetworkClient.doConnect(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.http.HttpClient.<init>(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.http.HttpClient.New(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.http.HttpClient.New(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source) ~[na:1.8.0_265],
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) ~[na:1.8.0_265],
at com.alibaba.nacos.client.naming.net.HttpClient.request(HttpClient.java:82) ~[nacos-client-1.2.1.jar!/:na],
at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:433) [nacos-client-1.2.1.jar!/:na],
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:482) [nacos-client-1.2.1.jar!/:na],
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:401) [nacos-client-1.2.1.jar!/:na],
at com.alibaba.nacos.client.naming.net.NamingProxy.sendBeat(NamingProxy.java:343) [nacos-client-1.2.1.jar!/:na],
at com.alibaba.nacos.client.naming.beat.BeatReactor$BeatTask.run(BeatReactor.java:108) [nacos-client-1.2.1.jar!/:na],
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_265],
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_265],
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) [na:1.8.0_265],
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [na:1.8.0_265],
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_265],
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_265],
at java.lang.Thread.run(Unknown Source) [na:1.8.0_265],
,
2020-10-06 09:34:08.245 ERROR 1 --- [ing.beat.sender] com.alibaba.nacos.client.naming : request: /nacos/v1/ns/instance/beat failed, servers: [172.30.0.48:8848], code: 500, msg: java.net.ConnectException: Connection refused (Connection refused),
2020-10-06 09:34:08.247 ERROR 1 --- [ing.beat.sender] com.alibaba.nacos.client.naming : [CLIENT-BEAT] failed to send beat: {"cluster":"DEFAULT","ip":"172.30.0.91","metadata":{"preserved.register.source":"SPRING_CLOUD"},"period":5000,"port":8100,"scheduled":false,"serviceName":"DEFAULT_GROUP@@blade-auth","stopped":false,"weight":1.0}, code: 500, msg: failed to req API:/api//nacos/v1/ns/instance/beat after all servers([172.30.0.48:8848]) tried: java.net.ConnectException: Connection refused (Connection refused),
回答:
2020-10-06 13:22
1. 先检查下nacos是否为单机模式,如果不是单机模式则改为单机(yml默认为单机模式)
2. 是91的服务报错还是91、92都报错?如果只有91的话,先关掉91的服务,只启动92,再跑一下是否可以跑通
3. 先把服务跑通,然后再着重排查ip联通的问题
讨论(0)
官方新品
- 热议问题
-
本地存储上传设置好之后,上传总是失败的状态
2
-
links的server服务无法成功启动
1
-
如何确保feign接口只能在服务内调用,不允许通过浏览器访问
1
-
代码生成报错,4.50 cloud版本
1
-
请问流程中的某一节点配置,即在红框位置是否能够添加自定义的人员选择下拉框?
1
-
微服务4.4版本配置ssl
2
-
点击左侧导航的展开收起 右侧数据超出界面
1
-
prometheus监控Redis,编写的redis_exporter.service一直启动不起来,是什么原因
1
-
使用时序库TDengine创建物模型时,属性长度配置不生效
1
-
微服务4.4版本,报错提示都是提示:“请求未完成,请联系管理员”
1
扫一扫访问 Blade技术社区 移动端