• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Issue HTTP 414 Request-URI Too Long

LightRO

New Pleskian
Hello everybody,
I have a bigger problem. If I want to install an application via Plesk on my website, I get the error at about 85%: HTTP Error 414 Request URI Too Long. What can I do to prevent this error from occurring?

Many thanks in advance,
LightRO
 
Hi,
I have try install open Exchange but by another software come this error now and then but with open exchange it always comes

Update:
The Error come from this failor.

Code:
Installation of Open-Xchange failed. Non-zero exit status returned by script. Output stream:

 'Creating OX context 8array(2) {  [0]=>  array(4) {  
["file"]=>    string(89)
"/opt/psa/var/apspackages/apscatalogKdxQY3.zip770529b2-69fe-29/cache/scripts/configure.php"  
["line"]=>    int(233)  
["function"]=>    string(5) "debug"  
["args"]=>    array(1) {      [0]=>   object(SoapClient)#1 (7) {      
["uri"]=>        string(34) "http://soap.admin.openexchange.com"      
["location"]=>        string(45) "http://localhost/webservices/OXContextService"      
["trace"]=>        int(1)      
["_classmap"]=>        array(2) {        
["Credentials"]=>          string(11) "Credentials"        
["Context"]=>          string(7) "Context"        }      
["_soap_version"]=>        int(1)      
["__last_request"]=>        string(1533) "<?xml
version="1.0" encoding="UTF-8"?><SOAP-
ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope
/"
xmlns:ns1="http://soap.admin.openexchange.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLS

How can i fix it?
 
Last edited:
Normally, when Open XChange is not pre-configured (with the license code etc.) in the administrator back end of Plesk, it cannot be installed into subscriptions. But in that case it does not throw the error "Request URI Too Long" mentioned above. Instead, it displays a message telling the user to have the administrator first add some configuration values. I am not sure, what the real situation is on that system. For me information is insufficient to tackle the issue, but maybe another forum user has experienced the same issue before.

The "Request URI Too Long" is normally a consequence of a global configuration variable in the Apache (httpd) service conrfiguration files where "LimitRequestLine" needs to be set to a higher value (or added and set to a high value), such as
Code:
LimitRequestLine 20000
(allowing 20,000 characters in the URI). The issue itself occurs when a software places "too many" URL parameters into the URL. So expanding the number of characters allowed in an URI can be a workaround. However, the installation of Open XChange does not place "too many" parameters into the URL, unless the LimitRequestLine directive has a very low value. You can check for the variable in any of the /etc/httpd configuration files, e.g. search by
# grep -R LimitRequestLine /etc/httpd/*

It is possible, too, that the 414 is not generated by Apache, but by Nginx. In that case, you need to check the
Code:
client_header_buffer_size <value>;
large_client_header_buffers 8 <value>;
directives in the Nginx configuration. If present at all, these are located not in the virtual host entries, but in the global Nginx configuration file in the httpd-bracket.
 
I have found the important following lines:

Code:
        ["httpsocket"]=>
        resource(9) of type (stream)
        ["_use_proxy"]=>
        int(0)
        ["httpurl"]=>
        resource(10) of type (Unknown)
        ["__last_request_headers"]=>
        string(257) "POST /webservices/OXContextService HTTP/1.1
Host: 85.214.203.28
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.29
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://soap.admin.openexchange.com#createModuleAccessByName"
Content-Length: 1527

"
        ["__last_response_headers"]=>
        string(176) "HTTP/1.1 503 Service Unavailable
Server: nginx
Date: Mon, 20 Nov 2017 16:32:17 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 362
Connection: keep-alive
"
        ["__soap_fault"]=>
        object(SoapFault)#6 (9) {
          ["message":protected]=>
          string(19) "Service Unavailable"
          ["string":"Exception":private]=>
          string(0) ""
          ["code":protected]=>
          int(0)
          ["file":protected]=>
          string(89) "/opt/psa/var/apspackages/apscatalogUSwGzc.zipe5bef8ab-10cb-6b/cache/scripts/configure.php"
          ["line":protected]=>
          int(230)
          ["trace":"Exception":private]=>

How can i fix this?
 
all right, it is the error log from plesk by installing open xchange by a user.

i think that the problem is here:

string(176) "HTTP/1.1 503 Service Unavailable
Server: nginx

But i don't know why. When i go on this site: http://sererip/webservices/OXContextService
i received the same error. But i know, that it works when plesk is not installed.
i can say, that the proxy_http.conf is loading.

it show so:

Code:
<IfModule mod_proxy_http.c>
   ProxyRequests Off
   ProxyStatus On
   # When enabled, this option will pass the Host: line from the incoming request to the proxied host.
   ProxyPreserveHost On
   # Please note that the servlet path to the soap API has changed:
   <Location /webservices>
   # restrict access to the soap provisioning API
   Order Deny,Allow
   Deny from all
   Allow from 127.0.0.1 192.168 172.16.1.2
   </Location>

   # The old path is kept for compatibility reasons
   <Location /servlet/axis2/services>
       Order Deny,Allow
       Deny from all
       Allow from 127.0.0.1
   </Location>

   # Enable the balancer manager mentioned in
   # http://oxpedia.org/wiki/index.php?title=AppSuite:Running_a_cluster#Updating_a_Cluster
   <IfModule mod_status.c>
     <Location /balancer-manager>
       SetHandler balancer-manager
       Order Deny,Allow
       Deny from all
      Allow from 127.0.0.1
     </Location>
   </IfModule>

   <Proxy balancer://oxcluster>
       Order deny,allow
       Allow from all
       # multiple server setups need to have the hostname inserted instead localhost
       BalancerMember http://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=APP1
       # Enable and maybe add additional hosts running OX here
       # BalancerMember http://oxhost2:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=APP2
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
      SetEnv proxy-initial-not-pooled
      SetEnv proxy-sendchunked
   </Proxy>

   # The standalone documentconverter(s) within your setup (if installed)
   # Make sure to restrict access to backends only
   # See: http://httpd.apache.org/docs/$YOUR_VERSION/mod/mod_authz_host.html#allow for more infos
   #<Proxy balancer://oxcluster_docs>
   #    Order Deny,Allow
   #    Deny from all
   #    Allow from backend1IP
   #    BalancerMember http://converter_host:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=APP3
   #    ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
   #       SetEnv proxy-initial-not-pooled
   #    SetEnv proxy-sendchunked
   #</Proxy>
   # Define another Proxy Container with different timeout for the sync clients. Microsoft recommends a minimum value of 15 minutes.
   # Setting the value lower than the one defined as com.openexchange.usm.eas.ping.max_heartbeat in eas.properties will lead to connection
   # timeouts for clients.  See http://support.microsoft.com/?kbid=905013 for additional information.
   #
   # NOTE for Apache versions < 2.4:
   # When using a single node system or using BalancerMembers that are assigned to other balancers please add a second hostname for that
   # BalancerMember's IP so Apache can treat it as additional BalancerMember with a different timeout.
   #
   # Example from /etc/hosts: 127.0.0.1 localhost localhost_sync
   #
   # Alternatively select one or more hosts of your cluster to be restricted to handle only eas/usm requests
   <Proxy balancer://eas_oxcluster>
      Order deny,allow
      Allow from all
      # multiple server setups need to have the hostname inserted instead localhost
      BalancerMember http://localhost_sync:8009 timeout=1900 smax=0 ttl=60 retry=60 loadfactor=50 route=APP1
      # Enable and maybe add additional hosts running OX here
      # BalancerMember http://oxhost2:8009 timeout=1900  smax=0 ttl=60 retry=60 loadfactor=50 route=APP2
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
      SetEnv proxy-initial-not-pooled
      SetEnv proxy-sendchunked
   </Proxy>

   # When specifying additional mappings via the ProxyPass directive be aware that the first matching rule wins. Overlapping urls of
   # mappings have to be ordered from longest URL to shortest URL.
   #
   # Example:
   #   ProxyPass /ajax      balancer://oxcluster_with_100s_timeout/ajax
   #   ProxyPass /ajax/test balancer://oxcluster_with_200s_timeout/ajax/test
   #
   # Requests to /ajax/test would have a timeout of 100s instead of 200s
   #
   # See:
   # - http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypass Ordering ProxyPass Directives
   # - http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers Worker Sharing
   ProxyPass /ajax balancer://oxcluster/ajax
   ProxyPass /appsuite/api balancer://oxcluster/ajax
   ProxyPass /drive balancer://oxcluster/drive
   ProxyPass /infostore balancer://oxcluster/infostore
   ProxyPass /publications balancer://oxcluster/publications
   ProxyPass /realtime balancer://oxcluster/realtime
   ProxyPass /servlet balancer://oxcluster/servlet
   ProxyPass /webservices balancer://oxcluster/webservices

   #ProxyPass /documentconverterws balancer://oxcluster_docs/documentconverterws

   ProxyPass /usm-json balancer://eas_oxcluster/usm-json
   ProxyPass /Microsoft-Server-ActiveSync balancer://eas_oxcluster/Microsoft-Server-ActiveSync

</IfModule>

i don't have any idea.
 
HTTP Error 414 Request URI Too Long

Under Apache, the limit is a configurable value, LimitRequestLine. Change this value to something larger than its default of 8190 if you want to support a longer request URI. Extremely long URLs are usually a mistake. If you keep URLs under 2000 characters , they'll work in virtually any combination of client and server software. URI actually have a character limit depending on several things. Chrome limits url length of 2MB for practical reasons and to avoid causing denial-of-service problems in inter-process communication. On most platforms, Chrome's omnibox limits URL display to 32kB ( kMaxURLDisplayChars ) although a 1kB limit is used on VR platforms. IE - 2083 characters, Firefox - 2047 characters, Safari 80000 characters and Opera 190,000 characters.

To resolve the problem :
  • By POST request: Convert query string to json object and sent to API request with POST
  • By GET request: Max length of request is depend on sever side as well as client side. Most webserver have limit 8k which is configurable. On the client side the different browser has different limit. The browser IE and Safari limit to 2k, Opera 4k and Firefox 8k. means the max length for the GET request is 8k and min request length is 2k.
If exceed the request max length then the request truncated outside the limit by web server or browser without any warning. Some server truncated request data but the some server reject it because of data lose and they will return with response code 414.
 
Back
Top