web应用步调设置服务端口,采取Nginx作反向署理时,访问网页出现404的标题办理的分析过程息争决方法

[复制链接]
发表于 2026-4-24 09:07:32 | 显示全部楼层 |阅读模式
目次
一、标题形貌
1、配景
2、标题具体形貌
二、标题分析
1、错误的多个大概因素
2、缘故原由分析
三、标题办理
1、 查察原来的nginx反向署理
(1)分析nginx设置
(2)nginx的重定向跳转
2、修改nginx反向署理
四、效果验证
1、革新前
2、革新后



一、标题形貌

1、配景

        由于业务必要,必要再客户现场摆设一套人脸体系,该体系原来利用8800端口作为网页访问端口,并通过该端口与监听在1212和3001端口的后端API举行交互。然而,由于客户方面因其他业务关系无法开放8800端口,转而提供了7200端口作为替换。
        鉴于直接修改网页访问端口存在困难,我们采取了在nginx上设置反向署理的办理方案。通过设置nginx,使其监听7200端口,并未来自该端口的哀求转发至原来由8800端口负责的API服务(即1212和3001端口上的API及其参数)。
        如许,我们就实现了在不改变后端API设置的情况下,通过7200端口举行网页访问的功能。以下是干系的设置图:


2、标题具体形貌

        根据前面的假想,我们在完成设置之后,可以直接通过7200端口来访问网页,实现顺遂登录而且页面加载正常。实际操纵界面如下图所示:

        然而,举行其他功能操纵、大概利用CTRL+R革新该页面后,无法正常加载并返回404错误。如下图所示。

        颠末多次测试,每次登录都会正常加载,但是革新后都会出现该错误。

二、标题分析


1、错误的多个大概因素


        404 Not Found错误是一个HTTP状态码,它表明客户端(如欣赏器)实验访问的服务器资源不存在。针对这个错误,我们可以从以下几个方面来分析和排查缘故原由:
        (1)资源确实不存在:起首,应查抄哀求的URL是否精确,以及服务器上是否确实存在该资源(文件或目次)。
        (2)设置错误:其次,必要检察服务器设置,确保没有设置错误导致资源无法被精确路由或处置处罚。
        (3)权限标题:固然nginx以高权限启动,但文件体系权限、SELinux或AppArmor等安全模块大概仍然会克制nginx访问某些文件。
        (4)署理设置标题:当利用nginx作为反向署理时,特别必要留意署理设置是否精确。比如,从8800端口署理到本地的7200端口时,必要确保署理规则涵盖了全部须要的路径,而且重定向规则也设置精确。
2、缘故原由分析

        联合实际情况,我们可以扫除以下大概性:
        (1)文件或目次不存在以及设置错误的情况,由于假如是这些标题,那么即便可以或许登录,用户也将无法访问任何资源,这与标题形貌不符。
        (2)权限标题也被扫除,由于nginx是以高权限账号启动的。
        因此,最有大概的缘故原由是署理设置标题。为了验证这一假设,我们必要查抄nginx的设置文件,特别是与署理和重定向干系的部门,以确保全部规则都已精确设置。
        通过这一步的检察,就可以找到导致404 Not Found错误的具体缘故原由,并采取相应的步调举行修复。

三、标题办理


1、 查察原来的nginx反向署理


(1)分析nginx设置

        进入nginx的设置目次下,利用下令:
           vi nginx.conf
          可以查察nginx的设置,原来的设置如下:

        由上面可以看出,Nginx设置中缺少了重定向跳转的设置。这导致用户通过反向署理访问网页时,Nginx无法精确地将哀求重定向到相应的资源,由此大概引发404错误。

(2)nginx的重定向跳转

        重定向跳转是Nginx服务器提供的一项功能,它答应管理员设置服务器,以便在客户端访问特定URL时,主动将其哀求重定向到另一个URL。这一重定向过程实际上涉及URL的重写,它紧张通过Nginx设置文件中的重写指令来实现,确保客户端可以或许无缝地访问到预期的资源。
2、修改nginx反向署理

        接下来就是在nginx设置中增长nginx的重定向跳转,非常简单,就在nginx.conf里增长
                   try_files $uri $uri/ /index.html;
          这个语句即可,如下图所示:

        这个语句紧张用于处置处罚静态文件和目次的访问哀求。它按照预设的序次实验查找指定的文件或目次,一旦找到就立刻返回相应的资源。在这个过程中,$uri 变量被用来存储用户哀求的 URL 路径部门。
        由于我现在尚未设置特定的 URI 路径,体系无法直接根据哀求的 URL 路径找到对应的文件或目次。因此,在无法找到匹配项的情况下,体系会默认实行一个 fallback 操纵,即返回当前路径下的 index.html 文件。如许的筹划旨在确保当页面革新或资源无法直接访问时,用户仍然可以或许看到一个有用的页面(即 index.html),从而克制体现 "404 Not Found" 错误页面。

四、效果验证

        在设置文件中到场重定向跳转语句后,生存设置并重启后,革新后再也没有404错误了,如下图所示。全部网页,无论是革新前照旧革新后都能正常返回。
1、革新前

        页面革新前的界面,如下图:

2、革新后

        页面多次革新后的界面,如下图:


        标题得到办理。

文章正下方可以看到我的接洽方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信手刺”字样,就会出现我的二维码,欢迎沟通探究。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表