前端build打包生成的dist使用 nginx 运行接口报错405和401问题。

这篇具有很好参考价值的文章主要介绍了前端build打包生成的dist使用 nginx 运行接口报错405和401问题。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

build打包的dist介绍。

        dist 目录是一个包含了打包后的项目代码和相关依赖项的目录,用于在部署时将项目移植到其他环境中。它提供了一个整理而简化的文件结构,使得部署过程更加方便和可靠。

        直接打开报错会空白可以使用 nginx 来启动。Nginx 官方网站:nginx news 下载很快很方便,可以不用配置环境,直接在 终端管理员身份 进入 nginx 文件夹下面即可 start nginx 启动项目,但需要简单配置一下启动文件nginx.conf。

情况一、接口405问题:

         情况介绍,启动的项目中,接口完全没有问题,而且请求头也完整的添加上了,传参要求也是按照服务端要求来的,但就 build 打包生成的 dist 文件在 nignx 中运行,接口报错 405。

nginx 401,前端,nginx

出现了这个问题就需要在 nginx 的 conf 文件夹的 nginx.conf 文件中进行接口配置。

在 server 中对应 的 location 中添加以下代码:

proxy_set_header Host app.dtuip.com;  
//该指令用于设置向后端代理服务器发送的 HTTP 请求头中的 X-Real-IP 头字段。它将客户端的真实 IP 地址(即发起请求的用户的 IP 地址)作为值传递给后端服务器。
proxy_set_header X-Real-IP $remote_addr;
//该指令用于设置向后端代理服务器发送的 HTTP 请求头中的 X-Real-IP 头字段。它将客户端的真实 IP 地址(即发起请求的用户的 IP 地址)作为值传递给后端服务器。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
//该指令用于设置向后端代理服务器发送的 HTTP 请求头中的 X-Forwarded-For 头字段。它将包含了请求经过的所有代理服务器的 IP 地址,并以逗号分隔的形式传递给后端服务器。这个字段可以用于追踪请求的路由路径。
proxy_set_header REMOTE-HOST $remote_addr;
//该指令用于设置向后端代理服务器发送的 HTTP 请求头中的 REMOTE-HOST 头字段。它将客户端的 IP 地址作为值传递给后端服务器。请注意,REMOTE-HOST 这个头字段并不是标准的 HTTP 头字段,而是一种自定义的头字段。
proxy_set_header Upgrade $http_upgrade;(可忽略)
//该指令用于设置向后端代理服务器发送的 HTTP 请求头中的 Upgrade 头字段。它将客户端发送的 Upgrade 头字段的值原样传递给后端服务器。这个头字段通常用于支持 WebSocket 连接升级。

我这边前端开发中接口代理路径都是用的 /api 开头,所以我这边完成的代码如下: 

如果遇见nginx报错,请在logs/error.log日志文件中查看具体的报错记录。

 server {
        listen       5173; //监听端口,访问端口,填写自己想要的端口号
        //服务器的域名或主机名称。默认都是不需要更改的
        server_name  localhost;
        //  必要,一般只需要更改第一个路径。
        location / {
            root   index_html/dist;  // 请求将会在该目录中查找文件。
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
          }
        //重点接口配置 !!!  
        location ^~ /api/  {
          proxy_pass https://app.dtuip.com/;  //这个地址是我的绝对地址,按需替换成自己的
          proxy_set_header Host app.dtuip.com;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header Upgrade $http_upgrade;  
          }
        }

配置完成之后,接口请求应该可以解决405问题。

 nginx 401,前端,nginx

        如果这样配置还是不行,请往以下几个方面考虑:①请确保 Nginx 的配置文件正确设置了允许使用的请求方法。默认情况下,Nginx 默认启用 GET 和 HEAD 方法,其他方法需要手动配置。确保你的配置文件中包含了 allow 指令或者相应的 proxy_pass 或 fastcgi_pass 指令。②检查 Nginx 运行的用户是否具有足够的权限来执行请求的方法。确认 Nginx 用户对相关文件和目录有适当的访问权限。③如果你的 Nginx 配置了安全策略,如 mod_security 或 WAF(Web Application Firewall),它们可能会限制某些请求方法。在这种情况下,你需要更新安全策略或调整规则以允许所需的请求方法。④405 错误可能由后端应用程序返回,找服务端。

情况二、 接口401问题。

        情况介绍,代码在本地启动时,接口完全没有任何问题,就的 build 打包生成的 dist 文件在 nginx运行中,就是接口报错 401 问题。

nginx 401,前端,nginx

考虑方向:①接口传参错误。② dist 是静态文件,可能让你不能通过 post 发送请求。③接口环境存在问题,这里指的是当防火墙配置不正确或规则设置过于严格时,可能会导致接口返回 401 错误。其中的具体有四个方向:1.访问控制,防火墙可能会对入站和出站的网络请求进行限制。2.请求过滤,某些防火墙支持对请求内容进行深度包检查,以防止恶意请求和攻击。3.阻止认证服务:某些防火墙可能会阻止认证服务(如LDAP、Active Directory等)的通信,导致接口无法完成身份验证过程,从而返回 401 错误。4.SSL/TLS 检测:一些高级防火墙支持 SSL/TLS 检测功能,用于检查和控制加密流量。

解决方案:

①仔细检查自己的传参问题。

②因为静态文件而不能发送 post 请求的问题,可以转接到已经链接来尝试解决 nginx静态html页面接收post请求,报405 not allowed错误 - 夏碌冬藏的个人空间 - OSCHINA - 中文开源技术交流社区

③尝试关闭你的防火墙试试。

        如果以上还是解决不了你的问题,还请你注意哟,nginx 有缓存,在你更改之后一定要清理并重新启动。或者换一个环境来运行你最新的代码,看看是否有新的奇效,我这边在解决 405 和 401 的问题的时候,一直用的是公司的电脑没有解决掉问题,而周末回家时,我用自己的电脑运行时,一样的代码一样的配置,它又是可以的,所以大家在解决问题的时候,要记得有多环境来检测你的代码哟!!!文章来源地址https://www.toymoban.com/news/detail-811670.html

到了这里,关于前端build打包生成的dist使用 nginx 运行接口报错405和401问题。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue前端打包Docker镜像并nginx运行

    首先说明咱们的前端项目是基于Vue的,反向代理使用的是nginx 1.打包vue前端项目生成dist文件夹上传至服务器 新建一个文件夹,叫vueDockerTest,下面的文件都需要。 cert是你存放ssl证书的文件夹,nginx.conf 是nginx的配置文件,dist是你打包的前端静态文件 2.修改Dockerfile文件 # 基于

    2024年02月01日
    浏览(43)
  • 如何运行vue打包之后的dist文件

    在Vue项目中,dist目录是代码打包之后生成的文件夹,其中包含了静态资源文件和打包后的JavaScript、CSS等文件。如果要在本地运行打包后的项目文件,可以使用简单的静态服务器来启动。 下面介绍一种使用Node.js中的http-server模块搭建本地服务器的方法: 确认已经安装了Node.

    2023年04月23日
    浏览(25)
  • vue打包后dist文件在本地启动运行

    vue项目开发好后,想在本地运行测试最后的打包文件可以通过http-server来启动。步骤如下: 命令截图 最后在浏览器输入:127.0.0.1:9007就可以查看了

    2024年02月12日
    浏览(39)
  • Vue项目的打包方式(生成dist文件)

    目录 一、相关配置 情况一(使用的工具是 vue-cil) 情况二(使用的工具是 webpack)  二、打包  情况一(使用的工具是 vue-cil)         如果是用 vue-cli 创建的项目,则项目目录中没有 config 文件夹,所以我们需要自建一个配置文件;在根目录 src 下创建文件 vue.config.js,

    2023年04月09日
    浏览(31)
  • Nginx部署前端dist文件夹

    nginx部署dist包_墨寒ice的博客-CSDN博客_nginx dist nginx服务器部署dist文件夹 - 菜鸟学院 (noobyard.com) nginx 部署 dist 文件 - 懒惰ing - 博客园 (cnblogs.com) 1.下载Nginx的压缩包(tar.gz) ​ 1.本地下载上传nginx: download ​ 2.wget命令下载 wget -c https://nginx.org/download/nginx-1.20.1.tar.gz 2.配置安装Ngi

    2024年02月08日
    浏览(23)
  • 404 not found nginx(dist打包后,刷新和跳转都是404 not found nginx的问题) 解决方案(打包发布在服务器)

    当我们执行了yarn run build之后,生成dist文件 我们将代码放入nginx-1.24.0下面的html中 然后我们就配置conf文件下的nginx.conf  配置方面不介绍了,主要问题是因为没有加这句话  问题分析 index index.htm index.html; index 就是根目录,也就是只识别“/”结尾的,输入不存在或者刷新页面

    2024年02月08日
    浏览(33)
  • vue项目的打包方式、生成dist文件夹、publicPath、hash、history、assetsPublicPath

    配置 vue.config.js 文件 打开 vue.config.js 文件修改参数,如果项目的目录中没有 vue.config.js 文件,那么需要自建一个配置文件;在根目录 src 下创建文件即可。需注意文件名称必须是 vue.config.js ,然后在文件中写入代码。 ☺☺☺☺☺☺☺ 配置 router/index.js 文件 以上的配置不能混

    2024年02月03日
    浏览(41)
  • 【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

             Nginx 是一款高性能的 Web 服务器和 反向代理服务器 ,也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展,因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡 :流量分摊 反向代理 :处理外

    2024年02月06日
    浏览(33)
  • 【Maven教程】(三)基础使用篇:入门使用指南——POM编写、业务代码、测试代码、打包与运行、使用Archetype生成项目骨架~

    到目前为止,已经大概了解并安装好了Maven环境, 现在,我们开始创建一个最简单的 Hello World 项目。如果你是初次接触 Maven, 建议按照本文的内容 一步步地编写代码并执行, 其中可能你会碰到一些概念暂时难以理解,但不用着急,记下这些疑难点,我在后续文章中会逐一进行

    2024年02月11日
    浏览(29)
  • 前端vue打包时遇到‘default‘ is not exported by node_modules/vue/dist/vue.runtime.esm-bundler.js, imported by

    主要原因是由于用到的组件进行npm i时默认使用的是vue2,不支持vue3,但是前端框架使用的是vue3,所以导致重构编码时会报错, 网上查询说         当我们在使用rollup编译es6时,可能会遇到以下报错问题,需要 安装@rollup/plugin-commonjs插件 npm install @rollup/plugin-commonjs 最后,

    2024年02月05日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包