4

我是这个主题的真正初学者,我需要一些有用的文章和你的指导。我想构建RESTFulAPI Web 服务。作为http服务器选择nginx。但我不知道(找不到任何文章)任何关于如何将查询重定向到我的 java 模块的信息,该模块处理请求并返回JSONnginx. 如果我对后端类型的想法不正确,请帮助我弄清楚这一点......

4

2 回答 2

8

您需要在自己的应用服务器中构建您的 Java 服务——Tomcat 将是一个不错的选择。nginx从那里开始,配置为 Tomcat 的代理就很简单了。您的nginx配置将如下所示:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 4096;
    # multi_accept on;
}

http {

    server {
        listen 80; #incoming port for nginx
        server_name localhost;
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
    }

#...and other things, like basic settings, logging, mail, etc. 

这里的重要部分是设置proxy_pass。这说明nginx接受端口 80 上的请求并将它们重定向到端口 8080(Tomcat 的标准端口)。

于 2013-01-12T19:14:51.317 回答
3

使用nginx-clojure,我们可以在 java、clojure 或 groovy 中编写内容处理程序、重写处理程序、访问处理程序和标头过滤器。例如

在 nginx.conf

   location /java {
      content_handler_type 'java';
      content_handler_name 'mytest.HelloService';
   }

HelloService.java

package mytest;

import java.util.Map;

import nginx.clojure.java.ArrayMap;
import nginx.clojure.java.NginxJavaRingHandler;
import static nginx.clojure.MiniConstants.*;

public  class HelloService implements NginxJavaRingHandler {

@Override
public Object[] invoke(Map<String, Object> request) {
    return new Object[] { 
            NGX_HTTP_OK, //http status 200
            ArrayMap.create(CONTENT_TYPE, "text/plain"), //headers map
            "Hello, Java & Nginx!"  //response body can be string, File or Array/Collection of string or File
                };
    }
}
于 2015-08-08T04:00:18.887 回答