1
+ <!DOCTYPE html>
2
+ < html >
3
+
4
+ < head >
5
+ < meta charset ='utf-8 '>
6
+ < meta http-equiv ="X-UA-Compatible " content ="chrome=1 ">
7
+ < meta content ="True " name ="HandheldFriendly ">
8
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0 ">
9
+ < meta name ="viewport " content ="width=device-width ">
10
+ < meta name ="description " content ="nginx-clojure.github.io : Nginx module for embedding Clojure / Java / Groovy programs, typically those Ring based handlers ">
11
+
12
+ < link rel ="stylesheet " type ="text/css " media ="screen " href ="stylesheets/stylesheet.css ">
13
+
14
+
15
+
16
+ <!-- bootstrap cdn -->
17
+ <!-- Latest compiled and minified CSS -->
18
+ < link rel ="stylesheet " href ="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css ">
19
+
20
+ <!-- Optional theme -->
21
+ < link rel ="stylesheet " href ="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css ">
22
+ < script src ="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js "> </ script >
23
+ <!-- Latest compiled and minified JavaScript -->
24
+ < script src ="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js "> </ script >
25
+
26
+ < script src ="javascripts/fix.js "> </ script >
27
+
28
+ < link rel ="stylesheet " type ="text/css " media ="screen " href ="stylesheets/my.css ">
29
+ < title > Configuration</ title >
30
+ </ head >
31
+
32
+ < body >
33
+ < div id ="header ">
34
+ <!-- HEADER -->
35
+ < nav id ="header_wrap " class ="navbar navbar-default navbar-fixed-top " role ="navigation ">
36
+ < header id ="header_logo_title " class ="inner container ">
37
+ < ul class ="external-link-buttons ">
38
+ < li >
39
+ < a id ="forkme_banner " href ="https://github.com/nginx-clojure/nginx-clojure " target ="_blank "> View on GitHub</ a >
40
+ </ li >
41
+ < li >
42
+ < a id ="google_group_banner " href ="https://groups.google.com/forum/#!forum/nginx-clojure " target ="_blank "> Google Group</ a >
43
+ </ li >
44
+ </ ul >
45
+ < div id ="project_logo ">
46
+ < h1 id ="project_title "> nginx-clojure</ h1 >
47
+ < ul class ="social-buttons ">
48
+ < li >
49
+ < iframe class ="github-btn " src ="github-btn.html?user=nginx-clojure&repo=nginx-clojure&type=watch&count=true " allowtransparency ="true " frameborder ="0 " scrolling ="0 " width ="102px " height ="20px "> </ iframe >
50
+ </ li >
51
+ < li >
52
+ < iframe class ="github-btn " src ="github-btn.html?user=nginx-clojure&repo=nginx-clojure&type=fork&count=true " allowtransparency ="true " frameborder ="0 " scrolling ="0 " width ="100px " height ="20px "> </ iframe >
53
+ </ li >
54
+ </ ul > </ div >
55
+ < h6 id ="project_tagline "> Nginx module for embedding Clojure / Java / Groovy programs, typically those Ring based handlers</ h6 >
56
+ </ header >
57
+ < div class ="btn-group " style ="border-top-width: 1px;border-top-color: #fff; ">
58
+ < a href ="index.html " class ="btn btn-sample btn-lg "> < span class ="glyphicon glyphicon-home "> </ span > Home</ a >
59
+ < a href ="quickstart.html " class ="btn btn-sample btn-lg "> < span class ="glyphicon glyphicon-flash "> </ span > Quick Start</ a >
60
+ < a href ="downloads.html " class ="btn btn-sample btn-lg "> < span class ="glyphicon glyphicon-download-alt "> </ span > Downloads</ a >
61
+ < div class ="btn-group ">
62
+ < button type ="button " class ="btn btn-sample btn-lg dropdown-toggle " data-toggle ="dropdown " id ="docDropDownBtn "> < span class ="glyphicon glyphicon-cog "> </ span > Configuration < span class ="caret "> </ span > </ button >
63
+ < ul class ="dropdown-menu " role ="menu ">
64
+ < li > < a href ="configuration.html#21-jvm-path--class-path--other-jvm-options "> < span class ="glyphicon glyphicon-cog "> </ span > JVM Path,Class Path & Other JVM Options</ a > </ li >
65
+ < li > < a href ="configuration.html#22-initialization-handler-for-nginx-worker "> < span class ="glyphicon glyphicon-cog "> </ span > Initialization Handler for nginx worker</ a > </ li >
66
+ < li > < a href ="configuration.html#23-content-ring-handler-for-location "> < span class ="glyphicon glyphicon-cog "> </ span > Content Ring Handler for Location</ a > </ li >
67
+ < li > < a href ="configuration.html#24-chose--coroutine-based-socket-or-asynchronous-socketchannel-or-thread-pool-for-slow-io-operations "> < span class ="glyphicon glyphicon-cog "> </ span > Coroutine/Asynchronous Client Channel/Thread Pool </ a > </ li >
68
+ < li > < a href ="configuration.html#25-nginx-rewrite-handler "> < span class ="glyphicon glyphicon-cog "> </ span > Nginx Rewrite Handler</ a > </ li >
69
+ < li > < a href ="configuration.html#26-nginx-access-handler "> < span class ="glyphicon glyphicon-cog "> </ span > Nginx Access Handler</ a > </ li >
70
+ < li > < a href ="configuration.html#27-niginx-header-filter "> < span class ="glyphicon glyphicon-cog "> </ span > Niginx Header Filter</ a > </ li >
71
+ </ ul >
72
+ </ div >
73
+ < div class ="btn-group ">
74
+ < button type ="button " class ="btn btn-sample btn-lg dropdown-toggle " data-toggle ="dropdown " id ="docDropDownBtn "> < span class ="glyphicon glyphicon-book "> </ span > Documents < span class ="caret "> </ span > </ button >
75
+ < ul class ="dropdown-menu " role ="menu ">
76
+ <!-- <li><a href="quickstart.html"><span class="glyphicon glyphicon-flash"></span> Quick Start</a></li> -->
77
+ < li > < a href ="installation.html "> < span class ="glyphicon glyphicon-hdd "> </ span > Installation</ a > </ li >
78
+ < li > < a href ="configuration.html "> < span class ="glyphicon glyphicon-cog "> </ span > Configuration</ a > </ li >
79
+ < li > < a href ="embed.html "> < span class ="glyphicon glyphicon-gift "> </ span > Embedding Nginx-Clojure into A standard App</ a > </ li >
80
+ < li > < a href ="more.html#34-server-channel-for-long-polling--server-sent-events-sse "> < span class ="glyphicon glyphicon-envelope "> </ span > Server Channel for Long Polling & Server Sent Events</ a > </ li >
81
+ < li > < a href ="more.html#35-subpub--broadcast-event "> < span class ="glyphicon glyphicon-signal "> </ span > Sub/Pub services with Broadcast Events</ a > </ li >
82
+ < li > < a href ="more.html#36-asynchronous-client-channel "> < span class ="glyphicon glyphicon-road "> </ span > Asynchronous Client Channel</ a > </ li >
83
+ < li > < a href ="more.html#37--about-logging "> < span class ="glyphicon glyphicon-th-list "> </ span > About Logging</ a > </ li >
84
+ < li > < a href ="more.html#38--sever-side-websocket "> < span class ="glyphicon glyphicon-th-list "> </ span > Sever Side WebSocket</ a > </ li >
85
+ < li > < a href ="more.html#39--java-standard-restful-web-services-with-jersey "> < span class ="glyphicon glyphicon-th-list "> </ span > Java standard RESTful web services with Jersey</ a > </ li >
86
+ < li > < a href ="more.html#310-embeding-tomcat "> < span class ="glyphicon glyphicon-th-list "> </ span > Embeding Tomcat</ a > </ li >
87
+ < li > < a href ="more.html "> < span class ="glyphicon glyphicon-th-list "> </ span > More about Nginx-Clojure</ a > </ li >
88
+ </ ul >
89
+ </ div >
90
+ < a href ="userfullLinks.html " class ="btn btn-sample btn-lg "> < span class ="glyphicon glyphicon-share-alt "> </ span > Useful Links</ a >
91
+ </ div >
92
+ </ nav >
93
+
94
+ </ div >
95
+ <!-- MAIN CONTENT -->
96
+ < div id ="main_content_wrap " class ="outer ">
97
+ < section id ="main_content " class ="inner ">
98
+ < h1 >
99
+ < a id ="user-content-nginx-clojure-embed " class ="anchor " href ="#nginx-clojure-embed " aria-hidden ="true "> < span class ="octicon octicon-link "> </ span > </ a > nginx-clojure-embed</ h1 >
100
+
101
+ < p > Embeding Nginx-Clojure into a standard java/clojure app without additional Nginx process.
102
+ It can make test/debug with nginx-clojure clojure/java handler quite easy.</ p >
103
+
104
+ < h1 >
105
+ < a id ="user-content-jar-repository " class ="anchor " href ="#jar-repository " aria-hidden ="true "> < span class ="octicon octicon-link "> </ span > </ a > Jar Repository</ h1 >
106
+
107
+ < p > For Clojure</ p >
108
+
109
+ < div class ="highlight highlight-clojure "> < pre > [nginx-clojure/nginx-clojure-embed < span class ="pl-s "> < span class ="pl-pds "> "</ span > 0.4.1< span class ="pl-pds "> "</ span > </ span > ]</ pre > </ div >
110
+
111
+ < p > For Java (Maven)</ p >
112
+
113
+ < div class ="highlight highlight-xml "> < pre > << span class ="pl-ent "> repository</ span > >
114
+ << span class ="pl-ent "> id</ span > >clojars.org</< span class ="pl-ent "> id</ span > >
115
+ << span class ="pl-ent "> url</ span > >http://clojars.org/repo</< span class ="pl-ent "> url</ span > >
116
+ </< span class ="pl-ent "> repository</ span > ></ pre > </ div >
117
+
118
+ < div class ="highlight highlight-xml "> < pre > << span class ="pl-ent "> dependency</ span > >
119
+ << span class ="pl-ent "> groupId</ span > >nginx-clojure</< span class ="pl-ent "> groupId</ span > >
120
+ << span class ="pl-ent "> artifactId</ span > >nginx-clojure-embed</< span class ="pl-ent "> artifactId</ span > >
121
+ << span class ="pl-ent "> version</ span > >0.4.1</< span class ="pl-ent "> version</ span > >
122
+ </< span class ="pl-ent "> dependency</ span > ></ pre > </ div >
123
+
124
+ < h1 >
125
+ < a id ="user-content-startstop-embedded-server " class ="anchor " href ="#startstop-embedded-server " aria-hidden ="true "> < span class ="octicon octicon-link "> </ span > </ a > Start/Stop Embedded Server</ h1 >
126
+
127
+ < p > For Clojure</ p >
128
+
129
+ < div class ="highlight highlight-clojure "> < pre > < span class ="pl-c "> ;;(1) Start it with ring handler and an options map</ span >
130
+ < span class ="pl-c "> ;;my-app can be a simple ring hanler or a compojure router.</ span >
131
+ (< span class ="pl-en "> run-server</ span > my-app {< span class ="pl-c1 "> :port</ span > < span class ="pl-c1 "> 8080</ span > })
132
+
133
+
134
+ < span class ="pl-c "> ;;(2) Start it with a nginx.conf file</ span >
135
+ (< span class ="pl-en "> run-server</ span > < span class ="pl-s "> < span class ="pl-pds "> "</ span > /my-dir/nginx.conf< span class ="pl-pds "> "</ span > </ span > )
136
+
137
+ < span class ="pl-c "> ;;(3) Start it with a given work dir</ span >
138
+ (< span class ="pl-k "> binding</ span > [*nginx-work-dir* my-work-dir]
139
+ (< span class ="pl-en "> run-server</ span > ...))
140
+
141
+ < span class ="pl-c "> ;;(4) Stop the server</ span >
142
+ (< span class ="pl-en "> stop-server</ span > )</ pre > </ div >
143
+
144
+ < p > For Java</ p >
145
+
146
+ < div class ="highlight highlight-java "> < pre > < span class ="pl-c "> //Start it with ring handler and an options map</ span >
147
+ < span class ="pl-smi "> NginxEmbedServer</ span > < span class ="pl-k "> .</ span > getServer()< span class ="pl-k "> .</ span > start(< span class ="pl-s "> < span class ="pl-pds "> "</ span > my.HelloHandler< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-smi "> ArrayMap</ span > < span class ="pl-k "> .</ span > create(< span class ="pl-s "> < span class ="pl-pds "> "</ span > port< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 8081< span class ="pl-pds "> "</ span > </ span > ));
148
+
149
+
150
+ < span class ="pl-c "> //Start it with with a nginx.conf file</ span >
151
+ < span class ="pl-smi "> NginxEmbedServer</ span > < span class ="pl-k "> .</ span > getServer()< span class ="pl-k "> .</ span > start(< span class ="pl-s "> < span class ="pl-pds "> "</ span > /my-dir/nginx.conf< span class ="pl-pds "> "</ span > </ span > );
152
+
153
+ < span class ="pl-c "> //Start it with a given work dir</ span >
154
+ < span class ="pl-smi "> NginxEmbedServer</ span > < span class ="pl-k "> .</ span > getServer()< span class ="pl-k "> .</ span > setWorkDir(my< span class ="pl-k "> -</ span > work< span class ="pl-k "> -</ span > dir);
155
+ < span class ="pl-smi "> NginxEmbedServer</ span > < span class ="pl-k "> .</ span > getServer()< span class ="pl-k "> .</ span > start(< span class ="pl-c1 "> ...</ span > );
156
+
157
+
158
+ < span class ="pl-c "> //Stop the server</ span >
159
+ < span class ="pl-smi "> NginxEmbedServer</ span > < span class ="pl-k "> .</ span > getServer()< span class ="pl-k "> .</ span > stop();</ pre > </ div >
160
+
161
+ < h1 >
162
+ < a id ="user-content-default-options " class ="anchor " href ="#default-options " aria-hidden ="true "> < span class ="octicon octicon-link "> </ span > </ a > Default Options</ h1 >
163
+
164
+ < div class ="highlight highlight-clojure "> < pre > < span class ="pl-s "> < span class ="pl-pds "> "</ span > error-log< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > logs/error.log< span class ="pl-pds "> "</ span > </ span > ,
165
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > max-connections< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 1024< span class ="pl-pds "> "</ span > </ span > ,
166
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > access-log< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > off< span class ="pl-pds "> "</ span > </ span > ,
167
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > keepalive-timeout< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 65< span class ="pl-pds "> "</ span > </ span > ,
168
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > max-threads< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 8< span class ="pl-pds "> "</ span > </ span > ,
169
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > host< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 0.0.0.0< span class ="pl-pds "> "</ span > </ span > ,
170
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > port< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > 8080< span class ="pl-pds "> "</ span > </ span > ,</ pre > </ div >
171
+
172
+ < p > User defined zones</ p >
173
+
174
+ < div class ="highlight highlight-clojure "> < pre > < span class ="pl-c "> ;;;at nginx.conf top level</ span >
175
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > global-user-defined< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > < span class ="pl-pds "> "</ span > </ span > ,
176
+
177
+ < span class ="pl-c "> ;;;at nginx.conf http block</ span >
178
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > http-user-defined< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > < span class ="pl-pds "> "</ span > </ span > ,
179
+
180
+ < span class ="pl-c "> ;;at nginx.conf types mapping block</ span >
181
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > types-user-defined< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > < span class ="pl-pds "> "</ span > </ span > ,
182
+
183
+ < span class ="pl-c "> ;;at nginx.conf server block</ span >
184
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > server-user-defined< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > < span class ="pl-pds "> "</ span > </ span > ,
185
+
186
+ < span class ="pl-c "> ;;at nginx.conf location block</ span >
187
+ < span class ="pl-s "> < span class ="pl-pds "> "</ span > location-user-defined< span class ="pl-pds "> "</ span > </ span > , < span class ="pl-s "> < span class ="pl-pds "> "</ span > < span class ="pl-pds "> "</ span > </ span > </ pre > </ div >
188
+
189
+ </ section >
190
+ </ div >
191
+ < div id ="footer ">
192
+ <!-- FOOTER -->
193
+ < div id ="footer_wrap " class ="outer ">
194
+ < footer class ="inner ">
195
+ < p >
196
+ Powered by < a href ="http://getbootstrap.com/ "> Twitter Bootstrap</ a >
197
+ </ p >
198
+ </ footer >
199
+ </ div >
200
+ </ div >
201
+
202
+ < script type ="text/javascript ">
203
+ $ ( "a[href^='http']" ) . attr ( "target" , "_blank" ) ;
204
+ setTimeout ( "fixNavbarIssue();" , 100 ) ;
205
+ var gaJsHost = ( ( "https:" == document . location . protocol ) ? "https://ssl."
206
+ : "http://www." ) ;
207
+ document
208
+ . write ( unescape ( "%3Cscript src='"
209
+ + gaJsHost
210
+ + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E" ) ) ;
211
+ </ script >
212
+ < script type ="text/javascript ">
213
+ try {
214
+ var pageTracker = _gat . _getTracker ( "UA-53526038-1" ) ;
215
+ pageTracker . _trackPageview ( ) ;
216
+ } catch ( err ) {
217
+ }
218
+ </ script >
219
+ </ body >
220
+ </ html >
0 commit comments