2016-12-27 21 views
2

Nginxが起動していないという問題に直面しています。 -- > nginx-clojure-0.4.4を含む.zipファイルをダウンロードし、C:\ nginxに解凍しました。私の.confファイルは、以下のように次のようになります。NginX with Clojure/Java on Windows 10 - 起動しない

daemon off; 

#master_process off; 
#user nobody; 
worker_processes 1; 
error_log logs/error.log; 
pid  logs/nginx.pid; 
events { 
    worker_connections 1024; 
} 
http { 
    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 
    #jvm_path auto; 
    jvm_path 'C:/Program Files/Java/jdk1.8.0_91/jre/bin/server/jvm.dll'; 
    jvm_var my_other_jars 'C:/nginx-clojure-0.4.4/jars'; 
    jvm_classpath "#{my_other_jars}/*.jar;libs/*"; 
    #jvm_options "-Djava.class.path=jars/nginx-clojure-0.4.0.jar;#{my_other_jars}"; 
    jvm_options "-Xms1024m"; 
    jvm_options "-Xmx1024m"; 
    server { 
     #listen  8080; 
     listen  9091; 
     server_name localhost; 
     location/{ 
      root html; 
      index index.html index.htm; 
     } 
    location /java { 
     content_handler_type 'java'; 
     content_handler_name 'mytest.HelloService'; 
    } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

     location /clojure { 
      handler_type 'clojure'; 
      handler_code ' 
         (fn[req] 
          { 
          :status 200, 
          :headers {"content-type" "text/plain"}, 
          :body "Hello Clojure & Nginx!" 
          }) 
      '; 
     }  
    } 
} 

次のように今、私はnginxの-win64.exeを実行します。

Windows PowerShell 
Copyright (C) 2016 Microsoft Corporation. All rights reserved. 

PS C:\WINDOWS\system32> cd c:\nginx 
PS C:\nginx> .\nginx-win64.exe 
PS C:\nginx> 

私はローカルホストに行くとき:9091、ページはnginxのを意味するロードしません開始されていません。 @dscastroコメントの後のerror.logファイルに続き

java.lang.NoClassDefFoundError: nginx/clojure/MiniConstants 
Caused by: java.lang.ClassNotFoundException: nginx.clojure.MiniConstants 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
2016/12/26 20:27:48 [error] 8400#4396: can not initialize jvm memory util 
2016/12/26 20:27:48 [error] 8400#4396: jvm start times 1 
Exception in thread "main" 2016/12/26 20:27:48 [error] 8408#2548: jvm may be mad for wrong options! See hs_err_pid****.log for detail! restarted 2 
2016/12/26 20:27:48 [error] 8408#2548: we try quit master now! 
2016/12/26 20:27:48 [crit] 8408#2548: ngx_http_clojure_quit_master, file ("C:\nginx\nginx-win64.exe"), arg (""C:\nginx\nginx-win64.exe" -s stop") 
2016/12/26 20:27:48 [error] 8584#8808: jvm may be mad for wrong options! See hs_err_pid****.log for detail! restarted 3 
2016/12/26 20:27:48 [error] 8584#8808: we try quit master now! 
2016/12/26 20:27:48 [crit] 8584#8808: ngx_http_clojure_quit_master, file ("C:\nginx\nginx-win64.exe"), arg (""C:\nginx\nginx-win64.exe" -s stop") 
2016/12/26 20:27:48 [error] 2580#8744: CreateFile() "C:\nginx/logs/nginx.pid" failed (2: The system cannot find the file specified) 

されています:

2017/01/03 14:24:58 [error] 2552#5560: invalid java content_handler code : mytest.HelloService 
Exception in thread "main" 2017/01/03 14:24:59 [error] 3304#4676: jvm may be mad for wrong options! See hs_err_pid****.log for detail! restarted 2 
2017/01/03 14:24:59 [error] 3304#4676: we try quit master now! 
2017/01/03 14:24:59 [crit] 3304#4676: ngx_http_clojure_quit_master, file ("C:\nginx\nginx-win64.exe"), arg (""C:\nginx\nginx-win64.exe" -s stop") 
2017/01/03 14:24:59 [error] 4584#5632: jvm may be mad for wrong options! See hs_err_pid****.log for detail! restarted 3 
2017/01/03 14:24:59 [error] 4584#5632: we try quit master now! 
2017/01/03 14:24:59 [crit] 4584#5632: ngx_http_clojure_quit_master, file ("C:\nginx\nginx-win64.exe"), arg (""C:\nginx\nginx-win64.exe" -s stop") 
2017/01/03 14:24:59 [error] 7172#5508: CreateFile() "C:\nginx/logs/nginx.pid" failed (2: The system cannot find the file specified) 
+1

nginxはWindows上でプロダクションの準備ができていません。 jvmとclojureを追加しようとすると、***何が間違っている可能性がありますか?*** – cnst

答えて

3

それは簡単です...それは見つけることができないクラスnginx.clojure.MiniConstantsので、ここで

は.logファイルのスナップショットですあなたのクラスパスにはありません。

このクラスはnginx-clojure-0.4.4.jarに置かれ、その変更されたあなたのjvm_classpathへ:

jvm_classpath "jars/nginx-clojure-0.4.4.jar;#{my_other_jars}/*.jar;libs/*;"; 

...と、エラーが消えるはずです。 :)

+0

Great..thanks !!それは見つからなかった問題を解決しました。それでも、.pidファイルを作成できません。以下はerror.logの出力です: '2017/01/03 14:24:58 [エラー] 2552#5560:無効なjava content_handlerコード:mytest.HelloService :::::::::: 2017/01/03 14:24:59 [エラー] 7172#5508:CreateFile() "C:\ nginx/logs/nginx.pid"が失敗しました(2:システムが指定されたファイルを見つけることができませんでした) ' –

+0

mytest.jarをクラスパスに追加する必要がありました。今度はクラスパスは次のようになります: jvm_classpath jars/mytest.jar; jars/nginx-clojure-0.4.4.jar;#{my_other_jars}/*。jar; libs/*; ";' –

+0

! :) – bosco

関連する問題