Nginx Echo 子请求不起作用

Nginx Echo 子请求不起作用

我是 Nginx 新手。

我的要求是我需要进行服务调用,但除了代理传递该请求外,我还需要调用另一个服务/servlet。为此,我决定使用 Echo 模块来使用 echo_subrequest_async 选项。

但是子请求不起作用,甚至简单的 echo print 也不起作用。 echo "hello" 应该去哪里?到客户端(我的猜测)

以下是我的配置(一些注释):

  1. 这两个服务器都是在我的本地机器上运行的 Java 服务器
  2. 我的操作系统是 mac osx 版本 10.9.5 3,我从源代码编译了 nginx 1.6.2,并带有模块 pcre 和 http echo


nginx version: nginx/1.6.2
built by clang 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configure arguments: --with-pcre=/Users/xxxx/project/pcre-8.35 --add-module=/Users/xxxx/project/echo-nginx-module-0.57 --with-cc-opt=-Wno-deprecated-declarations

我使用的 nginx 配置如下

http {

    server {
       listen 80;
       server_name localhost;

        # this will handle the initial request
        location /messaging-service {
            default_type "text/plain"; 
            echo "in the messaging service call";
            echo_flush;
            echo_subrequest_async GET '/mywebapp/second';
            proxy_pass http://localhost:8090/messaging-service/; 
        }

        # this is where the sub request should go,note its different service
        location /mywebapp/second {
            echo "Going to make another call on different server !!";
            echo_flush;
            proxy_pass http://localhost:8080/mywebapp/second/;
        }

    }

}

相关内容