Nginx 代理拦截404问题

通过Nginx来拦截系统访问出现的404问题。

来源:系统割接,没有在系统内部没有兼容旧版本的链接,导致旧版本的访问链接全部失效,出现tomcat 404 提示。

处理方案:

    1、系统内部进行兼容处理,规避404问题。

    2、Nginx拦截所有404,并指向对应的界面。

因是单机线上系统,不便在系统中加入逻辑处理,现采用第二种处理方案。

处理遇到问题:

    配置 error_page 404 /404.html 无效无法监听到404请求状态。

处理方案:

    添加 proxy_intercept_errors on; 配置,因采用代理模式, 所以404状态在普通模式下监听不到,需要先开启此配置,error_page 404 /404.html才有作用

配置代码:

http {
    include       mime.types;
    default_type  application/octet-stream;
    fastcgi_intercept_errors on; # 单独配置此项无效
    proxy_intercept_errors on;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '"$status" $body_bytes_sent --- $host --- "$http_referer" '
                      '
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx是一款高性能的开源Web服务器软件,同时也是一款强大的反向代理服务器。在nginx中,全局拦截是指在配置文件中设置全局的拦截规则,用于统一处理特定的请求。 在nginx中,全局拦截可以通过location指令来实现。通过在配置文件中设置location指令,我们可以对指定的URL进行拦截和处理。全局拦截可以用来实现各种功能,如重定向、防盗链、访问限制等。 例如,我们可以使用全局拦截来实现重定向功能。通过设置location指令,我们可以将用户请求的某个URL重定向到指定的页面或者另一个URL。这样,当用户访问被拦截的URL时,nginx会自动将请求重定向到我们指定的页面。 另外,全局拦截还可以用来实现防盗链功能。假设我们只希望我们自己的网站能够访问某个资源,而其他网站不能直接访问该资源。我们可以通过设置location指令,在拦截规则中增加对Referer的检查,从而实现防盗链功能。只有当请求的Referer符合我们预设的规则时,nginx才会返回该资源。 此外,全局拦截还可以用来实现访问限制功能。通过设置location指令,我们可以对特定的URL进行访问限制,如限制IP地址、限制访问频率等。这样,当满足限制条件时,nginx拦截请求并返回相应的错误信息。 总之,nginx的全局拦截功能非常强大,可以通过配置文件中的location指令进行配置,实现各种各样的功能,如重定向、防盗链、访问限制等。通过合理的配置,我们可以更好地保护网站安全,并实现更多的定制化需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值