4

私はこのトピックの初心者です。役立つ記事とガイダンスが必要です。RESTFulAPIWebサービスを構築したい。選択したhttpサーバーとしてnginxJSONしかし、リクエストを処理してに返すJavaモジュールにクエリをリダイレクトする方法については何も知りません(記事が見つかりませんでした)nginx。バックエンドのタイプに関する私の考えが正しくない場合は、これを理解するのを手伝ってください...

4

2 に答える 2

8

独自のアプリサーバーでJavaサービスを構築する必要があります。これにはTomcatが適しています。そこから、nginxTomcatのプロキシとして機能するように設定するだけです。構成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_passnginxこれは、ポート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 に答える