From fc64cf2b772da9b1c329d9bb87448a4ee29ecfa7 Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Thu, 30 Oct 2008 14:34:21 +0000 Subject: [PATCH] Changing web server default servlet handling svn: r12178 --- .../dispatchers/dispatch-servlets-test.ss | 2 +- .../{ => htdocs}/servlets/configure.ss | 0 .../{ => htdocs}/servlets/examples/README | 0 .../{ => htdocs}/servlets/examples/add-ssd.ss | 0 .../{ => htdocs}/servlets/examples/add-v2.ss | 0 .../{ => htdocs}/servlets/examples/add.ss | 0 .../{ => htdocs}/servlets/examples/adjust.ss | 0 .../{ => htdocs}/servlets/examples/clear.ss | 0 .../{ => htdocs}/servlets/examples/count.ss | 0 .../{ => htdocs}/servlets/examples/cut.ss | 0 .../{ => htdocs}/servlets/examples/dir.ss | 0 .../examples/english-measure-questions.ss | 0 .../{ => htdocs}/servlets/examples/error.ss | 0 .../{ => htdocs}/servlets/examples/hello.ss | 0 .../{ => htdocs}/servlets/examples/quiz.ss | 2 +- .../{ => htdocs}/servlets/examples/wc-fake.ss | 0 .../{ => htdocs}/servlets/examples/wc.ss | 0 .../scribblings/configuration.scrbl | 7 +++- .../web-server/scribblings/dispatchers.scrbl | 36 +++++++++++-------- .../scribblings/web-server-unit.scrbl | 2 +- collects/web-server/web-config-unit.ss | 19 +++++----- collects/web-server/web-server-unit.ss | 8 ++--- 22 files changed, 43 insertions(+), 33 deletions(-) rename collects/web-server/default-web-root/{ => htdocs}/servlets/configure.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/README (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/add-ssd.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/add-v2.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/add.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/adjust.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/clear.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/count.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/cut.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/dir.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/english-measure-questions.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/error.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/hello.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/quiz.ss (98%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/wc-fake.ss (100%) rename collects/web-server/default-web-root/{ => htdocs}/servlets/examples/wc.ss (100%) diff --git a/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss b/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss index 3476c5daea..15ff62287c 100644 --- a/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss +++ b/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss @@ -27,7 +27,7 @@ d) (define example-servlets - (build-path (collection-path "web-server") "default-web-root" "servlets" "examples/")) + (build-path (collection-path "web-server") "default-web-root" "htdocs" "servlets" "examples/")) (define dispatch-servlets-tests (test-suite diff --git a/collects/web-server/default-web-root/servlets/configure.ss b/collects/web-server/default-web-root/htdocs/servlets/configure.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/configure.ss rename to collects/web-server/default-web-root/htdocs/servlets/configure.ss diff --git a/collects/web-server/default-web-root/servlets/examples/README b/collects/web-server/default-web-root/htdocs/servlets/examples/README similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/README rename to collects/web-server/default-web-root/htdocs/servlets/examples/README diff --git a/collects/web-server/default-web-root/servlets/examples/add-ssd.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/add-ssd.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/add-ssd.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/add-ssd.ss diff --git a/collects/web-server/default-web-root/servlets/examples/add-v2.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/add-v2.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/add-v2.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/add-v2.ss diff --git a/collects/web-server/default-web-root/servlets/examples/add.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/add.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/add.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/add.ss diff --git a/collects/web-server/default-web-root/servlets/examples/adjust.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/adjust.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/adjust.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/adjust.ss diff --git a/collects/web-server/default-web-root/servlets/examples/clear.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/clear.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/clear.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/clear.ss diff --git a/collects/web-server/default-web-root/servlets/examples/count.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/count.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/count.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/count.ss diff --git a/collects/web-server/default-web-root/servlets/examples/cut.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/cut.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/cut.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/cut.ss diff --git a/collects/web-server/default-web-root/servlets/examples/dir.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/dir.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/dir.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/dir.ss diff --git a/collects/web-server/default-web-root/servlets/examples/english-measure-questions.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/english-measure-questions.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/english-measure-questions.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/english-measure-questions.ss diff --git a/collects/web-server/default-web-root/servlets/examples/error.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/error.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/error.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/error.ss diff --git a/collects/web-server/default-web-root/servlets/examples/hello.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/hello.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/hello.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/hello.ss diff --git a/collects/web-server/default-web-root/servlets/examples/quiz.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/quiz.ss similarity index 98% rename from collects/web-server/default-web-root/servlets/examples/quiz.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/quiz.ss index 4b1da9a1d2..e532381c6c 100644 --- a/collects/web-server/default-web-root/servlets/examples/quiz.ss +++ b/collects/web-server/default-web-root/htdocs/servlets/examples/quiz.ss @@ -15,7 +15,7 @@ ;; Configuration (define *data-file* (build-path (collection-path "web-server") - "default-web-root" "servlets" "examples" "english-measure-questions.ss")) + "default-web-root" "htdocs" "servlets" "examples" "english-measure-questions.ss")) (define *questions-per-quiz* 5) (require web-server/servlet diff --git a/collects/web-server/default-web-root/servlets/examples/wc-fake.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/wc-fake.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/wc-fake.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/wc-fake.ss diff --git a/collects/web-server/default-web-root/servlets/examples/wc.ss b/collects/web-server/default-web-root/htdocs/servlets/examples/wc.ss similarity index 100% rename from collects/web-server/default-web-root/servlets/examples/wc.ss rename to collects/web-server/default-web-root/htdocs/servlets/examples/wc.ss diff --git a/collects/web-server/scribblings/configuration.scrbl b/collects/web-server/scribblings/configuration.scrbl index c2d6e6b44d..9e36c08449 100644 --- a/collects/web-server/scribblings/configuration.scrbl +++ b/collects/web-server/scribblings/configuration.scrbl @@ -113,7 +113,6 @@ structures. where a @scheme[host-table-sexpr] is: -@; XXX Allowable log-formats? @; XXX Where the paths are resolved relative to @schemeblock[ `(host-table @@ -142,6 +141,12 @@ where a @scheme[host-table-sexpr] is: (mime-types ,path-string?) (password-authentication ,path-string?)))] +@(require (for-label web-server/dispatchers/dispatch-log)) + +Allowable @scheme['log-format]s are those accepted by @scheme[log-format->format]. + +Note: You almost always want to leave everything in the @scheme['paths] section the default except the @scheme['host-root]. + @defproc[(read-configuration-table (path path-string?)) configuration-table?]{ This function reads a @scheme[configuration-table] from @scheme[path]. diff --git a/collects/web-server/scribblings/dispatchers.scrbl b/collects/web-server/scribblings/dispatchers.scrbl index db0dad7266..350e008994 100644 --- a/collects/web-server/scribblings/dispatchers.scrbl +++ b/collects/web-server/scribblings/dispatchers.scrbl @@ -187,25 +187,31 @@ a URL that refreshes the password file, servlet cache, etc.} @defthing[paren-format format-req/c]{ Formats a request by: @schemeblock[ - (format "~s~n" - (list 'from (request-client-ip req) - 'to (request-host-ip req) - 'for (url->string (request-uri req)) 'at - (date->string (seconds->date (current-seconds)) #t))) - ]} + (format + "~s~n" + (list 'from (request-client-ip req) + 'to (request-host-ip req) + 'for (url->string (request-uri req)) 'at + (date->string + (seconds->date (current-seconds)) #t))) + ]} @defthing[extended-format format-req/c]{ Formats a request by: @schemeblock[ - (format "~s~n" - `((client-ip ,(request-client-ip req)) - (host-ip ,(request-host-ip req)) - (referer ,(let ([R (headers-assq* #"Referer" (request-headers/raw req))]) - (if R - (header-value R) - #f))) - (uri ,(url->string (request-uri req))) - (time ,(current-seconds)))) + (format + "~s~n" + `((client-ip ,(request-client-ip req)) + (host-ip ,(request-host-ip req)) + (referer + ,(let ([R (headers-assq* + #"Referer" + (request-headers/raw req))]) + (if R + (header-value R) + #f))) + (uri ,(url->string (request-uri req))) + (time ,(current-seconds)))) ]} @defthing[apache-default-format format-req/c]{ diff --git a/collects/web-server/scribblings/web-server-unit.scrbl b/collects/web-server/scribblings/web-server-unit.scrbl index 651dbae3d2..ac9315ef37 100644 --- a/collects/web-server/scribblings/web-server-unit.scrbl +++ b/collects/web-server/scribblings/web-server-unit.scrbl @@ -43,7 +43,7 @@ operations: @item{Allows the @scheme["/conf/refresh-passwords"] URL to refresh the password file.} @item{Allows the @scheme["/conf/collect-garbage"] URL to call the garbage collector.} @item{Allows the @scheme["/conf/refresh-servlets"] URL to refresh the servlets cache.} - @item{Execute servlets under the @scheme["/servlets/"] URL in the given servlet root directory.} + @item{Execute servlets in the mapping URLs to the given servlet root directory.} @item{Serves files under the @scheme["/"] URL in the given htdocs directory.} ] diff --git a/collects/web-server/web-config-unit.ss b/collects/web-server/web-config-unit.ss index d1934abd9a..49cf8bfc7e 100644 --- a/collects/web-server/web-config-unit.ss +++ b/collects/web-server/web-config-unit.ss @@ -15,14 +15,14 @@ (#:port (or/c false/c number?) #:listen-ip (or/c false/c string?) #:make-servlet-namespace make-servlet-namespace/c) - unit?)] + unit?)] [configuration-table-sexpr->web-config@ (->* (list?) ; XXX - (#:web-server-root path-string? - #:port (or/c false/c number?) - #:listen-ip (or/c false/c string?) - #:make-servlet-namespace make-servlet-namespace/c) - unit?)]) + (#:web-server-root path-string? + #:port (or/c false/c number?) + #:listen-ip (or/c false/c string?) + #:make-servlet-namespace make-servlet-namespace/c) + unit?)]) ; configuration-table->web-config@ : path -> configuration (define (configuration-table->web-config@ @@ -121,12 +121,13 @@ (if p (build-path-unless-absolute b p) #f))]) - (let ([host-base (build-path-unless-absolute web-server-root (paths-host-base paths))]) + (let* ([host-base (build-path-unless-absolute web-server-root (paths-host-base paths))] + [htdocs-base (build-path-unless-absolute host-base (paths-htdocs paths))]) (make-paths (build-path-unless-absolute host-base (paths-conf paths)) host-base (build-path-unless-absolute host-base (paths-log paths)) - (build-path-unless-absolute host-base (paths-htdocs paths)) - (build-path-unless-absolute host-base (paths-servlet paths)) + htdocs-base + (build-path-unless-absolute htdocs-base (paths-servlet paths)) (build-path-unless-absolute host-base (paths-mime-types paths)) (build-path-unless-absolute host-base (paths-passwords paths)))))) diff --git a/collects/web-server/web-server-unit.ss b/collects/web-server/web-server-unit.ss index 1f4a54f42c..795f65f626 100644 --- a/collects/web-server/web-server-unit.ss +++ b/collects/web-server/web-server-unit.ss @@ -85,11 +85,9 @@ (lambda _ (clear-cache!) ((responders-servlets-refreshed (host-responders host-info))))) - (filter:make - #rx"^/servlets" - (sequencer:make - (timeout:make (timeouts-servlet-connection (host-timeouts host-info))) - servlet-dispatch)))) + (sequencer:make + (timeout:make (timeouts-servlet-connection (host-timeouts host-info))) + servlet-dispatch))) (files:make #:url->path (fsmap:make-url->path (paths-htdocs (host-paths host-info))) #:path->mime-type (make-path->mime-type (paths-mime-types (host-paths host-info))) #:indices (host-indices host-info))