重写引擎:如何测试不同服务器上的 URL 是否可访问?

重写引擎:如何测试不同服务器上的 URL 是否可访问?

我正在尝试使用 nginx 的重写引擎来重定向请求。
在同一台机器上,我在端口 8080 上运行了一个 Jetty,它正在传递一些内容。

我想检查内容是否在 Jetty 上可用,否则我想重定向它。
为此,我必须添加位置,一个用于在 Jetty 上重定向,另一个用于检查它。

location /nexus/ {
    rewrite ^/nexus/(.*)$ http://A:8080/nexus/$1 permanent;
}

location ~* "^/releases/([a-z]*)/(.*)$" {
    try_files /nexus/content/repositories nexus/content/repositories /nexus/content/;
    # rewrite ^/releases/test/(.*)$ http://A:8080/nexus/content/repositories/Test/$2 break;
}

我的想法是使用 try_files,但第一个参数应该是文件或目录。
还有其他方法可以测试 URL 是否可以访问吗?

目前我正在使用 Nginx 检查 URL 的可达性,也许我最好使用位于 Nexus 前面的 Jetty。Nginx
只是一个选择,如果有更好的选择,我愿意切换。:)

以下是有关环境的一些详细信息:

在此处输入图片描述

答案1

您正在描述缓存反向代理模式,Nginx 可以配置为执行该模式。首先检查本地缓存,然后如果文件丢失或过时,则从后端服务器获取副本,并可能在本地缓存。

我建议回顾一下Nginx 代理模块文档。一旦用这些术语描述了问题,就可以找到许多带有示例的教程,下面是关于如何将 Nginx 设置为反向代理的详细文章,并启用缓存。

相关内容