Class FastCGIProxyServlet
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- org.eclipse.jetty.proxy.AbstractProxyServlet
-
- org.eclipse.jetty.proxy.ProxyServlet
-
- org.eclipse.jetty.proxy.AsyncProxyServlet
-
- org.eclipse.jetty.proxy.AsyncProxyServlet.Transparent
-
- org.eclipse.jetty.fcgi.server.proxy.FastCGIProxyServlet
-
- All Implemented Interfaces:
java.io.Serializable,javax.servlet.Servlet,javax.servlet.ServletConfig
public class FastCGIProxyServlet extends AsyncProxyServlet.Transparent
Specific implementation ofAsyncProxyServlet.Transparentfor FastCGI.This servlet accepts an HTTP request and transforms it into a FastCGI request that is sent to the FastCGI server specified in the
proxyToinit-param.This servlet accepts these additional
init-params:scriptRoot, mandatory, that must be set to the directory where the application that must be served via FastCGI is installed and corresponds to the FastCGI DOCUMENT_ROOT parameterscriptPattern, optional, defaults to(.+?\.php), that specifies a regular expression with at least 1 and at most 2 groups that specify respectively:- the FastCGI SCRIPT_NAME parameter
- the FastCGI PATH_INFO parameter
fastCGI.HTTPS, optional, defaults to false, that specifies whether to force the FastCGIHTTPSparameter to the valueonfastCGI.envNames, optional, a comma separated list of environment variable names read viaSystem.getenv(String)that are forwarded as FastCGI parameters.
- See Also:
TryFilesFilter, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classFastCGIProxyServlet.ProxyHttpClientTransportOverFCGI-
Nested classes/interfaces inherited from class org.eclipse.jetty.proxy.AsyncProxyServlet
AsyncProxyServlet.StreamReader, AsyncProxyServlet.StreamWriter, AsyncProxyServlet.Transparent
-
Nested classes/interfaces inherited from class org.eclipse.jetty.proxy.ProxyServlet
ProxyServlet.ProxyInputStreamContentProvider, ProxyServlet.ProxyResponseListener
-
Nested classes/interfaces inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
AbstractProxyServlet.TransparentDelegate
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringFASTCGI_ENV_NAMES_INIT_PARAMstatic java.lang.StringFASTCGI_HTTPS_INIT_PARAMprivate java.util.Set<java.lang.String>fcgiEnvNamesprivate booleanfcgiHTTPSstatic java.lang.StringORIGINAL_QUERY_ATTRIBUTE_INIT_PARAMstatic java.lang.StringORIGINAL_URI_ATTRIBUTE_INIT_PARAMprivate java.lang.StringoriginalQueryAttributeprivate java.lang.StringoriginalURIAttributeprivate static java.lang.StringREMOTE_ADDR_ATTRIBUTEprivate static java.lang.StringREMOTE_PORT_ATTRIBUTEprivate static java.lang.StringREQUEST_QUERY_ATTRIBUTEprivate static java.lang.StringREQUEST_URI_ATTRIBUTEprivate static java.lang.StringSCHEME_ATTRIBUTEstatic java.lang.StringSCRIPT_PATTERN_INIT_PARAMstatic java.lang.StringSCRIPT_ROOT_INIT_PARAMprivate java.util.regex.PatternscriptPatternprivate static java.lang.StringSERVER_ADDR_ATTRIBUTEprivate static java.lang.StringSERVER_NAME_ATTRIBUTEprivate static java.lang.StringSERVER_PORT_ATTRIBUTE-
Fields inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
_log, CLIENT_REQUEST_ATTRIBUTE, HOP_HEADERS
-
-
Constructor Summary
Constructors Constructor Description FastCGIProxyServlet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcustomizeFastCGIHeaders(Request proxyRequest, HttpFields fastCGIHeaders)voidinit()protected HttpClientnewHttpClient()The servlet init parameter 'selectors' can be set for the number of selector threads to be used by the HttpClient.protected voidsendProxyRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest)-
Methods inherited from class org.eclipse.jetty.proxy.AsyncProxyServlet.Transparent
init, rewriteTarget
-
Methods inherited from class org.eclipse.jetty.proxy.AsyncProxyServlet
newReadListener, newWriteListener, onResponseContent, proxyRequestContent
-
Methods inherited from class org.eclipse.jetty.proxy.ProxyServlet
newProxyResponseListener, onContinue, service
-
Methods inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
addProxyHeaders, addViaHeader, addViaHeader, addXForwardedHeaders, clientRequestStatus, copyRequestHeaders, createHttpClient, createLogger, destroy, expects100Continue, filterServerResponseHeader, findConnectionHeaders, getBlackListHosts, getHostHeader, getHttpClient, getRequestId, getTimeout, getViaHost, getWhiteListHosts, hasContent, newProxyRequest, onClientRequestFailure, onProxyResponseFailure, onProxyResponseSuccess, onProxyRewriteFailed, onServerResponseHeaders, proxyResponseStatus, sendProxyResponseError, setTimeout, validateDestination
-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
-
-
-
-
Field Detail
-
SCRIPT_ROOT_INIT_PARAM
public static final java.lang.String SCRIPT_ROOT_INIT_PARAM
- See Also:
- Constant Field Values
-
SCRIPT_PATTERN_INIT_PARAM
public static final java.lang.String SCRIPT_PATTERN_INIT_PARAM
- See Also:
- Constant Field Values
-
ORIGINAL_URI_ATTRIBUTE_INIT_PARAM
public static final java.lang.String ORIGINAL_URI_ATTRIBUTE_INIT_PARAM
- See Also:
- Constant Field Values
-
ORIGINAL_QUERY_ATTRIBUTE_INIT_PARAM
public static final java.lang.String ORIGINAL_QUERY_ATTRIBUTE_INIT_PARAM
- See Also:
- Constant Field Values
-
FASTCGI_HTTPS_INIT_PARAM
public static final java.lang.String FASTCGI_HTTPS_INIT_PARAM
- See Also:
- Constant Field Values
-
FASTCGI_ENV_NAMES_INIT_PARAM
public static final java.lang.String FASTCGI_ENV_NAMES_INIT_PARAM
- See Also:
- Constant Field Values
-
REMOTE_ADDR_ATTRIBUTE
private static final java.lang.String REMOTE_ADDR_ATTRIBUTE
-
REMOTE_PORT_ATTRIBUTE
private static final java.lang.String REMOTE_PORT_ATTRIBUTE
-
SERVER_NAME_ATTRIBUTE
private static final java.lang.String SERVER_NAME_ATTRIBUTE
-
SERVER_ADDR_ATTRIBUTE
private static final java.lang.String SERVER_ADDR_ATTRIBUTE
-
SERVER_PORT_ATTRIBUTE
private static final java.lang.String SERVER_PORT_ATTRIBUTE
-
SCHEME_ATTRIBUTE
private static final java.lang.String SCHEME_ATTRIBUTE
-
REQUEST_URI_ATTRIBUTE
private static final java.lang.String REQUEST_URI_ATTRIBUTE
-
REQUEST_QUERY_ATTRIBUTE
private static final java.lang.String REQUEST_QUERY_ATTRIBUTE
-
scriptPattern
private java.util.regex.Pattern scriptPattern
-
originalURIAttribute
private java.lang.String originalURIAttribute
-
originalQueryAttribute
private java.lang.String originalQueryAttribute
-
fcgiHTTPS
private boolean fcgiHTTPS
-
fcgiEnvNames
private java.util.Set<java.lang.String> fcgiEnvNames
-
-
Method Detail
-
init
public void init() throws javax.servlet.ServletException- Overrides:
initin classAbstractProxyServlet- Throws:
javax.servlet.ServletException
-
newHttpClient
protected HttpClient newHttpClient()
Description copied from class:AbstractProxyServletThe servlet init parameter 'selectors' can be set for the number of selector threads to be used by the HttpClient.- Overrides:
newHttpClientin classAbstractProxyServlet- Returns:
- a new HttpClient instance
-
sendProxyRequest
protected void sendProxyRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest)- Overrides:
sendProxyRequestin classAbstractProxyServlet
-
customizeFastCGIHeaders
protected void customizeFastCGIHeaders(Request proxyRequest, HttpFields fastCGIHeaders)
-
-