×
FalconChen
2019-05-08 18:57
nginx做反向代理,当向上游服务器请求,上游服务器响应404时,修改请求参数,再次向上游请求得到200的内容,再把结果返回给用户。这个要怎么做比较好?
1
寰宇01

评论 ( 17 )

  • FalconChen 弹主
    2019-05-08 20:56
    @clouddyy 不不不,nginx真是面向Google搞的配置,lua确实值得一学
    0
  • clouddyy
    2019-05-08 20:52
    回复: @FalconChen : 给nginx大佬倒茶
    0
  • FalconChen 弹主
    2019-05-08 20:11
    @clouddyy 我用nginx指令才6行啊
    0
  • FalconChen 弹主
    2019-05-08 20:05
    还是不要用301,修改url后直接向上游请求就算了,万一无限重定向就gg了。
    0
  • clouddyy
    2019-05-08 20:01
    @FalconChen 嗯嗯,我说嘛,肯定不是牛刀
    0
  • FalconChen 弹主
    2019-05-08 20:00
    @clouddyy 现在才几行。。。
    0
  • clouddyy
    2019-05-08 20:00
    @DrakKing 撸啊是好东西,还没学会
    0
  • clouddyy
    2019-05-08 19:59
    @FalconChen 不是牛刀嘛,程序应该很简单,顶多几十行吧:satisfied:
    0
  • FalconChen 弹主
    2019-05-08 19:57
    @clouddyy 杀鸡焉用牛刀。。
    0
  • FalconChen 弹主
    2019-05-08 19:57
    找到了最简单的方法,捕捉到404后修改重写请求地址,然后301重定向,后面不用管。。。
    0
  • DrakKing
    2019-05-08 19:55
    回复: @clouddyy : lua程序也可以处理。而且处理的更好。
    0
  • DrakKing
    2019-05-08 19:53
    回复: @FalconChen : nginx可以专门对http状态码c做处理的。 error_page 404 就捕获到了
    0
  • FalconChen 弹主
    2019-05-08 19:40
    proxy_intercept_errors on; error_page 404 = @404 ; location @404 { proxy_pass http://old-app.domain; }
    0
  • FalconChen 弹主
    2019-05-08 19:39
    @DrakKing 这是在无法控制上游的情况下使用的。。。
    0
  • FalconChen 弹主
    2019-05-08 19:35
    @DrakKing 我要捕捉404,然后修改原请求参数,向上游重发请求,stackoverflow找到了一个解决方法。只要把new-app和old-app都指向同一个上游,在@old-app下修改请求参数就可以了。https://stackoverflow.com/questions/44536989/catch-40
    0
  • clouddyy
    2019-05-08 19:18
    写lua程序判断?
    0
  • DrakKing
    2019-05-08 19:12
    nginx做反向代理只是代替客户端的请求。具体怎么返回还要看你服务器端和客户端的逻辑。不管服务器端返回什么,nginx按照对应的返回给客户端就行了。做好异常处理。
    0