问题描述:

路由刷新报404,找不到这个地址。


原因分析:

1,本地与服务器端都可以单独运行;

2,代码部分不存在问题;

3,eureka注册中心存在所需的服务;

4,nacos配置一般不会有问题;

5,nginx配置中只有

location ~ /rest/{
...
# 三个点省略了里面的内容
}

如果这么配置,那么访问地址至少带有/rest/,如http://123.45.67.89/rest/test/,不带有/rest/的地址就会找不到,出现404的情况,如http://123.45.67.89/test/。其他地址也可以类似配置。

那么,就是nginx的配置出现了问题。


解决方案:

在网上找了很多关于类似问题的解决方案,都没有解决!(注:不是所有的方案都不能解决,而是我在不太懂的情况下,模仿网上的方案)

由于是内网,不方便截图,纯文字说明,其中nginx是使用docker进行配置的。

# 1,找到nginx的CONTAINER ID
docker ps

#2,通过这个ID找到nginx的信息(主要是配置路径),假设CONTAINER  ID是abc123
docker inspect abc123

#3,找到配置路径并进入(配置路径位于“HostConfig”->"Binds"),找到其中安装目录下的default.conf,如/home/nginx/default.conf
cd /home/nginx/

#4,配置default.conf,在location ~ /rest/后面再增加一个location ~ /,里面内容可以v一样
vim default.conf

location ~ /{
...
# 三个点省略了里面的内容
# 这个是需要添加的
}

5,最后重启nginx
docker restart nginx

至此,完美解决问题!

感受:自己不懂的还是太多了,这本是很小的问题,困扰自己好久。不过,困扰的时间也学会了很多东西,加油!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐