(待解决)java项目,nginx代理,请求200,但页面返回空白,响应体为空

这篇具有很好参考价值的文章主要介绍了(待解决)java项目,nginx代理,请求200,但页面返回空白,响应体为空。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

不知道是无意中改动了什么怎么的,程序突然出现bug,各项服务启动正常情况下,访问请求http://gulimall.com/,页面空白,f12显示请求200,没有响应体。
正常情况下,应该跳转到商品页面(该页面作为默认主页)。

http请求200但response为空,nginx,java,nginx,运维

http请求200但response为空,nginx,java,nginx,运维

背景简述

由于是教学项目【黑马电商项目】,只有一台电脑(win10:192.168.31.225),因此配置了虚拟机vm(centOS:192.168.204.81)。

大致流程

由于模拟分布式项目,只有一台主机(win10:192.168.31.225),一台虚拟机(centOS:192.168.204.81),需要通过win10主机的host的文件,将不同的域名都映射到虚拟机。
然后通过nginx作为代理服务器(安装在cengtOS的docker容器中),实现动静分离、反向代理和负载均衡。
nginx将请求转给网关,再由网关通过断言规则转给各个微服务。

事前确认

1.确认ip
(win10:192.168.31.225)
http请求200但response为空,nginx,java,nginx,运维
(centOS:192.168.204.81)
http请求200但response为空,nginx,java,nginx,运维
两者自身及相互之间都能ping通。
http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维
2.确认项目其他部分基本完备,编译不报错(没出现这个问题之前,运行正常)。
下面简单展示商品服务及网关服务的部分配置(注册和配置中心)。
商品服务:
http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维
网关服务:
http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维
3.确认服务注册发现启动
http请求200但response为空,nginx,java,nginx,运维
4.确认docker各个容器运行正常。
http请求200但response为空,nginx,java,nginx,运维

具体操作

步骤一:域名映射相关

1.由于模拟分布式项目,只有一台主机(win10:192.168.31.225),一台虚拟机(centOS:192.168.204.81),需要通过win10主机的host的文件,将不同的域名都映射到虚拟机。
http请求200但response为空,nginx,java,nginx,运维

步骤二:nginx相关

通过nginx作为代理服务器(安装在cengtOS的docker容器中),实现动静分离、反向代理和负载均衡三个功能。

1.nginx相关文件位置
http请求200但response为空,nginx,java,nginx,运维
其中,nginx.conf是nginx的全局配置文件,内容如下:
http请求200但response为空,nginx,java,nginx,运维
conf.d文件夹中为分配置,主要配置了server块,内容如下:http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维

2.动静分离,前端静态资源的链接都做了相关路径的改变。
http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维
当前端发来的static下的所有请求,都直接访问nginx下的html文件夹。

此处静态问的存储路径与配置文件中不一致,是因为docker容器的挂载路径导致的(弹幕说的),依旧能直接找到存储路径(之前是没问题的。)

3.监听gulimall.com:80请求,通过匹配host主机地址,将该请求转给网关服务。
http请求200但response为空,nginx,java,nginx,运维

4.网关通过断言规则,将请求转回到本地上的服务(egg:商品服务)。
http请求200但response为空,nginx,java,nginx,运维
http请求200但response为空,nginx,java,nginx,运维

运行及结果

1.地址栏输入请求:http://gulimall.com/
http请求200但response为空,nginx,java,nginx,运维

2.请求:http://192.168.204.81:10000/
http请求200但response为空,nginx,java,nginx,运维
3.请求:http://192.168.31.225:10000/
http请求200但response为空,nginx,java,nginx,运维
4.请求:http://192.168.204.1:10000/
http请求200但response为空,nginx,java,nginx,运维

5.请求:http://gulimall.com/api/product/attrattrgrouprelation/list
http请求200但response为空,nginx,java,nginx,运维
应该是网关出了问题。

猜想与尝试

1.尝试在nginx代理时跳过网关,直接转发给商品服务。
http请求200但response为空,nginx,java,nginx,运维
修改配置文件后,docker restart nginx重启。再次请求:http://gulimall.com/
http请求200但response为空,nginx,java,nginx,运维
基本达到要求(没出问题前的状态),但并没有解决问题,因为没有经过网关,点击其他处没法访问。
例如注册登录,正常情况下是没问题的,这些连接前端和后端都是调通了的。
http请求200但response为空,nginx,java,nginx,运维

解决方案

//TODO文章来源地址https://www.toymoban.com/news/detail-809611.html

到了这里,关于(待解决)java项目,nginx代理,请求200,但页面返回空白,响应体为空的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python requests爬虫返回403错误?加了所有特征的请求头+代理也解决不了的问题处理

    【疑惑】:使用python的requests库发起get或post请求返回403代码错误,使用postman发起请求发现状态码200竟然成功了。这是什么原因?首先排除ip问题,ip有问题的话postman也访问不了。难道是headers出现了问题吗,通过对比发现也不是headers的问题。那就奇了怪了? 【解疑】:其实遇

    2024年02月15日
    浏览(39)
  • 解决Origin请求头导致的Nginx反向代理403跨域问题

    页面通过域名A【https://a.winfun.com】访问接口,域名A通过Nginx服务进行反向代理,代理到域名B【http://b.winfun.com】,然后进行业务逻辑执行。 时序图: nginx配置: 接口返回Http状态为403,出现跨域问题。 为了方便测试,我们直接将接口放到Postman中进行模拟测试,并带上相关请求

    2024年02月12日
    浏览(45)
  • 用Nginx将前端Vue项目部署到云服务器(含代理实现请求跨域)

    记录使用Nginx将 纯前端 的Vue3项目部署到阿里云服务器(Ubuntu 22.04)上,包含通过Nginx代理实现 跨域请求 、以及个人踩坑记录~ 执行下列命令安装: 安装完成后查看nignx版本,显示版本信息则说明安装成果 启动nginx,如正确启动,则不会出现任何提示信息。 nginx启动成功后打

    2024年04月12日
    浏览(45)
  • nuxt3 useFetch封装一个api接口http请求 - 解决刷新页面useFetch无返回

    项目中封装接口请求,并且解决刷新页面useFetch无返回数据问题 刷新页面useFetch无返回数据问题: 浏览器刷新的时候页面没有显示数据,接口data无返回。本身nuxt的useFetch在参数不变的情况下,数据是不会重新从后台接口去请求数据的,会直接拿上一次的结果。但是有实时去后

    2024年02月11日
    浏览(77)
  • 前后端分离用nginx做代理服务器,刷新页面报404 解决方法

    情况一 在nginx配置文件中加上一句话,作用就是nginx代理时候找不到页面会尝试访问这个指定页面,而前端vue项目的话,页面正好是有vue自己进行管理,所以就不会报错了 location /{                 alias /var/www/html/;                 index index.html abc.html;                 tr

    2024年02月09日
    浏览(53)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(66)
  • Vue配合Nginx部署出现404、页面无法跳转、后端请求失败问题解决方案

    常见问题有: 1、部署后,打开地址可以看到,但是刷新后出现404。 2、Vue的路由资源并不一定是真实路径,导致页面无法跳转或其他资源加载问题。 3、请求后端接口地址失败。

    2024年02月13日
    浏览(53)
  • 【java苍穹外卖项目实战三】nginx反向代理和负载均衡

    我们思考一个问题: 前端发送的请求,是如何请求到后端服务的? 前端请求地址:http://localhost/api/employee/login 后端接口地址:http://localhost:8080/admin/employee/login 很明显,两个地址不一致,那是如何请求到后端服务的呢? 1、nginx反向代理 nginx 反向代理 ,就是将前端发送的动态

    2024年02月21日
    浏览(49)
  • nginx 做反向代理 因为域名解析失败 返回502

    现象:稳定运行的环境,nginx 做反向代理,突然有一天对客户端返回502。 排查过程:         1、第一步查看nginx的日志提示如下错误 : 7446 proxy_connect: upstream connect failed (111: Connection refused) while connecting to upstream, client: 172.22x.xx.xx, server: , request: \\\"CONNECT xxxx.xxxx.com:443 HTTP/1.0\\\" 实

    2024年02月06日
    浏览(36)
  • nginx 自定义403返回页面

    因公司内部域名通常用白名单的方式来进行域名访问限制,想要自定义 403 返回页面 1、开启允许 nginx 使用 error_page 处理错误信息 因为只涉及 nginx ip 白名单,所以只需要开启 fastcgi_intercept_errors 即可,如果需要自定义 上游/代理 服务器的状态吗,则需要开启 proxy_intercept_erro

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包