欢迎光临散文网 会员登陆 & 注册

医院挂号系统中Linux上Nginx反向代理事故

2022-12-10 02:01 作者:柚mingle木  | 我要投稿

        今天在学习医院挂号系统的时候发生一件极其无语的事情,在使用Nginx进行反向代理的时候,视频老师用的是windows的Nginx本地文件,而我使用的是Linux上的Nginx(你可能想问为什么不直接跟着老师一样呢,多省事。但是我就不!我已经在Linux上安装了,不想再安装一遍)就这样一场3小时的bug风开始了

        一开始我跟着视频一点一点配置好,想着也不是很难嘛,我还特意检查了好几遍(好习惯),但是运行起来的时候蒙了,经典的老师能行,我不行

我又打开视频好好瞧了瞧老师的配置:

我看看自己的配置:

我反复看了多少遍都没发现我哪里不一样了。

随后又修改了前端的访问地址

# base api

VUE_APP_BASE_API = 'http://localhost:9001'

        我想着没错啊,怎么就是访问不了呢,反复重启前端,后端,Nginx和虚拟机都不行。心里暗痛:糟了,遇到bug了。关键是以前完全没有自己动过Nginx,都是跟着老师一步一步来的,想着应该不会是Nginx坏了吧。反复检查配置后发现,没错啊,都是一样的,怎么就是不行呢。上网查解决办法。网上办法就是多啊,眼花缭乱,但都是一模一样没有任何营养,但是有不少好帖还是被我看到了。

        随后,我尝试了,查看Nginx是否启动,防火墙是否开启,给防火墙添加公共端口,在window上访问Linux的Nginx主页面(这里的访问是成功的,表示Nginx是没问题的查看端口是否正确配,网络是否通畅(其实finallshell能连上Linux就已经说明通的了,我不知道我为什么还要试一下。)

        但是都是无功而返,我彻底呆住了,我想要不跟着老师一样在本地也装一个吧,但是我的手好像不太同意。

        我静下心来仔细看看Nginx的nginx.config配置文件。发现我的虚拟机的IP地址是192.168.6.100,我的主机IP是*.*.*.30,配置上写的是local host。那么到底是Linux的ip还是主机的ip地址呢。我开始改,一遍一遍的改。

当我把localhost全部改成*.*.*.30:

        经过不断的尝试我发现我在window上访问不了,但是我在Linux上的火狐浏览器进行http://192.168.169.30:9528访问的时候却是能访问成功的。

        疑点出现了:为啥windows上不能访问,Linux却可以访问呢,为什么呢???

        来理一下思路,主机访问http://localhost:9528是前端页面,然后login登录的时候访问http://localhost:9001/admin/user/login被Linux上的Nginx反向代理根据后面的参数进行匹配。匹配到http://192.168.169.30:8201。按理来说没错啊,我的项目就是在本机上运行的所以地址肯定的.30的IP地址。但是现实就是无法进行匹配



还记得之前我跟着老师修改了前端的访问地址了吗?就是

# base api

VUE_APP_BASE_API = 'http://localhost:9001'

这个地址在进行转发的时候出了大问题。

        老师的Nginx在本机上运行的,所以他写localhost是没什么问题的,但是我的Nginx是在Linux上运行的,在进行发送请求的时候localhost映射的地址是*.*.*.30的本机IP地址,但是我的虚拟机IP地址是192.168.6.100。问题明了了

        我想用Nginx,但是Nginx在虚拟机上,那我的访问地址应该是虚拟机的IP地址也就是应该改成

# base api

VUE_APP_BASE_API = 'http://192.168.6.100:9001'

        这样才能被Nginx进行反向代理

        其实当我发现的时候,我是真的感到羞愧,我本应该想到,但是还是浪费了3个多小时的时间,你要说这个问题老师没提过,那可能是老师的失策,但是我记得老师说过这件事情。

总之问题解决,继续学习(感谢直播间的小伙伴帮助)

医院挂号系统中Linux上Nginx反向代理事故的评论 (共 条)

分享到微博请遵守国家法律