解决微服务项目本地无法访问服务器redis,以及前端联调本地服务问题

前言

我们目前的微服务项目启动大约13个服务,其中12个服务我们在windows服务器上启动。还包括redis和nacos,seata,但目前就遇到这样的一个问题,本地无法访问服务器上的redis,间接导致无法获取登录的token,其次就是前端同事联调本地代码,同事无法通过nacos访问到我们本地的项目,尽管我们的服务注册到了nacos中。

1.解决无法访问服务器上的redis问题

redis的启动大部分是认为在Liaux 系统中部署,因为这是一个本身就比windows安全的系统,所以默认是没有密码的,其次就说redis本身就存在保护机制,默认只能本地127.0.0.1访问,所以针对这样的问题,直接修改配置文件即可。

若依微服务版修改redis 微服务redis挂了怎么办_配置文件


上面有两个conf,其中“redis.windows.conf”是可以通过cmd命令窗口启动,在当前窗口启动cmd,输入“redis-server redis.windows.conf”

若依微服务版修改redis 微服务redis挂了怎么办_服务器_02


第二个“redis.windows-service.conf”,可以直接启动当前目录下的redis-server.exe。知道了这个之后就明白修改哪个配置文件了

若依微服务版修改redis 微服务redis挂了怎么办_redis_03


**

将bind改为0.0.0.0

**

若依微服务版修改redis 微服务redis挂了怎么办_服务器_04

protected-mode 改成 no

若依微服务版修改redis 微服务redis挂了怎么办_服务器_05

如果要设置密码也可以加requirepass 后面接上你的密码即可,注意的是,这些配置必须顶格,不然无法启动redis,会报错无法识别列

上述配置我这边简单概述下bind原本绑定的就是本机ip,所以只允许本机访问当前的redis,其次protected-mode就说redis的保护机制,是否开启redis访问的机制,这个跟bind是有关系的,如果bind被注释掉,这个机制也就失效,也就说只有bind存在,这个保护机制才可以开启

redis的RDB持久化

redis的持久化就是将存的数据写入内存,这里RDB通过快照将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb,重启redis后,他会去将存在这个文件的数据读出来,达到持久话的效果

只需要修改配置文件,将配置文件中的appendonly no 改成 appendonly yes

启动后自动生成默认文件

若依微服务版修改redis 微服务redis挂了怎么办_配置文件_06

前端如何联调本地服务

前端访问不到我们本地的服务器根本原因就是我们不在一个局域网中,只需要将我们本地服务的ip+端口穿透下就可以了,这里我使用的是ngrok(https://www.ngrok.cc/)

若依微服务版修改redis 微服务redis挂了怎么办_若依微服务版修改redis_07


这个软件是需要实名认证的,花了我两块大洋,不过有一个免费的穿透地址,还不用过期,这就很舒服,他只有一个免费的隧道,再想开另一个端口就需要付钱的啦。

若依微服务版修改redis 微服务redis挂了怎么办_服务器_08


选择最后一个即可

若依微服务版修改redis 微服务redis挂了怎么办_服务器_09


协议根据自己需求选择,隧道名称输入喜欢的,前置域名,就是你自己穿透后的地址,你输入的这块前置加上他们系统加上的后面一坨,组成的地址,本地端口输入自己本地的ip+端口 就可以 保存提交回到隧道管理下载他们的客户端,本地直接启动

若依微服务版修改redis 微服务redis挂了怎么办_配置文件_10


若依微服务版修改redis 微服务redis挂了怎么办_若依微服务版修改redis_11


这里的需要输入的就是隧道管理你穿透的那一条最前面的id,回车,然后就穿透成功啦

若依微服务版修改redis 微服务redis挂了怎么办_redis_12


nacos上的redis配置记得要改哦,ip改成服务暴露出来的ip就可以了