6 Replies Latest reply on Dec 10, 2013 4:25 AM by jfclere

    can not access application root

    ohmygod

      I have configured my application with mod-cluster, but when I am trying to access it by http://localhost:6666/myapp, below error occurs.

      [Tue Dec 10 12:46:12 2013] [error] [client 127.0.0.1] File does not exist: D:/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/htdocs/myapp
      

       

      The problem is it just worked yesterday. And I did not modify anything in httpd.conf.

       

      Here is my httpd.conf, similar to the default.

      #
      # This is the main Apache HTTP server configuration file.  It contains the
      # configuration directives that give the server its instructions.
      # See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
      # In particular, see 
      # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
      # for a discussion of each configuration directive.
      #
      # Do NOT simply read the instructions in here without understanding
      # what they do.  They're here only as hints or reminders.  If you are unsure
      # consult the online docs. You have been warned.  
      #
      # Configuration and logfile names: If the filenames you specify for many
      # of the server's control files begin with "/" (or "drive:/" for Win32), the
      # server will use that explicit path.  If the filenames do *not* begin
      # with "/", the value of ServerRoot is prepended -- so "logs/foo_log"
      # with ServerRoot set to "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2" will be interpreted by the
      # server as "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/logs/foo_log".
      
      
      #
      # ServerRoot: The top of the directory tree under which the server's
      # configuration, error, and log files are kept.
      #
      # Do not add a slash at the end of the directory path.  If you point
      # ServerRoot at a non-local disk, be sure to point the LockFile directive
      # at a local disk.  If you wish to share the same ServerRoot for multiple
      # httpd daemons, you will need to change at least LockFile and PidFile.
      #
      ServerRoot "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2"
      
      
      #
      # Listen: Allows you to bind Apache to specific IP addresses and/or
      # ports, instead of the default. See also the <VirtualHost>
      # directive.
      #
      # Change this to Listen on specific IP addresses as shown below to 
      # prevent Apache from glomming onto all bound IP addresses.
      #
      #Listen 12.34.56.78:80
      Listen 8000
      
      
      #
      # Dynamic Shared Object (DSO) Support
      #
      # To be able to use the functionality of a module which was built as a DSO you
      # have to place corresponding `LoadModule' lines at this location so the
      # directives contained in it are actually available _before_ they are used.
      # Statically compiled modules (those listed by `httpd -l') do not need
      # to be loaded here.
      #
      # Example:
      # LoadModule foo_module modules/mod_foo.so
      #
      LoadModule actions_module modules/mod_actions.so
      LoadModule alias_module modules/mod_alias.so
      LoadModule asis_module modules/mod_asis.so
      LoadModule auth_basic_module modules/mod_auth_basic.so
      #LoadModule auth_digest_module modules/mod_auth_digest.so
      #LoadModule authn_alias_module modules/mod_authn_alias.so
      #LoadModule authn_anon_module modules/mod_authn_anon.so
      #LoadModule authn_dbd_module modules/mod_authn_dbd.so
      #LoadModule authn_dbm_module modules/mod_authn_dbm.so
      LoadModule authn_default_module modules/mod_authn_default.so
      LoadModule authn_file_module modules/mod_authn_file.so
      #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
      #LoadModule authz_dbm_module modules/mod_authz_dbm.so
      LoadModule authz_default_module modules/mod_authz_default.so
      LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
      LoadModule authz_host_module modules/mod_authz_host.so
      #LoadModule authz_owner_module modules/mod_authz_owner.so
      LoadModule authz_user_module modules/mod_authz_user.so
      LoadModule autoindex_module modules/mod_autoindex.so
      #LoadModule cache_module modules/mod_cache.so
      #LoadModule cern_meta_module modules/mod_cern_meta.so
      LoadModule cgi_module modules/mod_cgi.so
      #LoadModule charset_lite_module modules/mod_charset_lite.so
      #LoadModule dav_module modules/mod_dav.so
      #LoadModule dav_fs_module modules/mod_dav_fs.so
      #LoadModule dav_lock_module modules/mod_dav_lock.so
      #LoadModule dbd_module modules/mod_dbd.so
      #LoadModule deflate_module modules/mod_deflate.so
      LoadModule dir_module modules/mod_dir.so
      #LoadModule disk_cache_module modules/mod_disk_cache.so
      #LoadModule dumpio_module modules/mod_dumpio.so
      LoadModule env_module modules/mod_env.so
      #LoadModule expires_module modules/mod_expires.so
      #LoadModule ext_filter_module modules/mod_ext_filter.so
      #LoadModule file_cache_module modules/mod_file_cache.so
      #LoadModule filter_module modules/mod_filter.so
      #LoadModule headers_module modules/mod_headers.so
      #LoadModule ident_module modules/mod_ident.so
      #LoadModule imagemap_module modules/mod_imagemap.so
      LoadModule include_module modules/mod_include.so
      #LoadModule info_module modules/mod_info.so
      LoadModule isapi_module modules/mod_isapi.so
      #LoadModule ldap_module modules/mod_ldap.so
      #LoadModule logio_module modules/mod_logio.so
      LoadModule log_config_module modules/mod_log_config.so
      #LoadModule log_forensic_module modules/mod_log_forensic.so
      #LoadModule mem_cache_module modules/mod_mem_cache.so
      LoadModule mime_module modules/mod_mime.so
      #LoadModule mime_magic_module modules/mod_mime_magic.so
      LoadModule negotiation_module modules/mod_negotiation.so
      #LoadModule proxy_module modules/mod_proxy.so
      #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
      #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
      #LoadModule proxy_connect_module modules/mod_proxy_connect.so
      #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
      #LoadModule proxy_http_module modules/mod_proxy_http.so
      #LoadModule rewrite_module modules/mod_rewrite.so
      LoadModule setenvif_module modules/mod_setenvif.so
      #LoadModule speling_module modules/mod_speling.so
      #LoadModule ssl_module modules/mod_ssl.so
      #LoadModule status_module modules/mod_status.so
      #LoadModule substitute_module modules/mod_substitute.so
      #LoadModule unique_id_module modules/mod_unique_id.so
      #LoadModule userdir_module modules/mod_userdir.so
      #LoadModule usertrack_module modules/mod_usertrack.so
      #LoadModule version_module modules/mod_version.so
      #LoadModule vhost_alias_module modules/mod_vhost_alias.so
      
      
      <IfModule !mpm_netware_module>
      <IfModule !mpm_winnt_module>
      #
      # If you wish httpd to run as a different user or group, you must run
      # httpd as root initially and it will switch.  
      #
      # User/Group: The name (or #number) of the user/group to run httpd as.
      # It is usually good practice to create a dedicated user and group for
      # running httpd, as with most system services.
      #
      User daemon
      Group daemon
      
      
      </IfModule>
      </IfModule>
      
      
      # 'Main' server configuration
      #
      # The directives in this section set up the values used by the 'main'
      # server, which responds to any requests that aren't handled by a
      # <VirtualHost> definition.  These values also provide defaults for
      # any <VirtualHost> containers you may define later in the file.
      #
      # All of these directives may appear inside <VirtualHost> containers,
      # in which case these default settings will be overridden for the
      # virtual host being defined.
      #
      
      
      #
      # ServerAdmin: Your address, where problems with the server should be
      # e-mailed.  This address appears on some server-generated pages, such
      # as error documents.  e.g. admin@your-domain.com
      #
      ServerAdmin leo@localhost.localdomain
      
      
      #
      # ServerName gives the name and port that the server uses to identify itself.
      # This can often be determined automatically, but we recommend you specify
      # it explicitly to prevent problems during startup.
      #
      # If your host doesn't have a registered DNS name, enter its IP address here.
      #
      ServerName localhost:8000
      
      
      #
      # DocumentRoot: The directory out of which you will serve your
      # documents. By default, all requests are taken from this directory, but
      # symbolic links and aliases may be used to point to other locations.
      #
      DocumentRoot "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/htdocs"
      
      
      #
      # Each directory to which Apache has access can be configured with respect
      # to which services and features are allowed and/or disabled in that
      # directory (and its subdirectories). 
      #
      # First, we configure the "default" to be a very restrictive set of 
      # features.  
      #
      <Directory />
          Options FollowSymLinks
          AllowOverride None
          Order deny,allow
          Deny from all
      </Directory>
      
      
      #
      # Note that from this point forward you must specifically allow
      # particular features to be enabled - so if something's not working as
      # you might expect, make sure that you have specifically enabled it
      # below.
      #
      
      
      #
      # This should be changed to whatever you set DocumentRoot to.
      #
      <Directory "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/htdocs">
          #
          # Possible values for the Options directive are "None", "All",
          # or any combination of:
          #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
          #
          # Note that "MultiViews" must be named *explicitly* --- "Options All"
          # doesn't give it to you.
          #
          # The Options directive is both complicated and important.  Please see
          # http://httpd.apache.org/docs/2.2/mod/core.html#options
          # for more information.
          #
          Options Indexes FollowSymLinks
      
      
          #
          # AllowOverride controls what directives may be placed in .htaccess files.
          # It can be "All", "None", or any combination of the keywords:
          #   Options FileInfo AuthConfig Limit
          #
          AllowOverride None
      
      
          #
          # Controls who can get stuff from this server.
          #
          Order allow,deny
          Allow from all
      
      
      </Directory>
      
      
      #
      # DirectoryIndex: sets the file that Apache will serve if a directory
      # is requested.
      #
      <IfModule dir_module>
          DirectoryIndex index.html
      </IfModule>
      
      
      #
      # The following lines prevent .htaccess and .htpasswd files from being 
      # viewed by Web clients. 
      #
      <FilesMatch "^\.ht">
          Order allow,deny
          Deny from all
          Satisfy All
      </FilesMatch>
      
      
      #
      # ErrorLog: The location of the error log file.
      # If you do not specify an ErrorLog directive within a <VirtualHost>
      # container, error messages relating to that virtual host will be
      # logged here.  If you *do* define an error logfile for a <VirtualHost>
      # container, that host's errors will be logged there and not here.
      #
      ErrorLog "logs/error_log"
      
      
      #
      # LogLevel: Control the number of messages logged to the error_log.
      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      #
      LogLevel warn
      
      
      <IfModule log_config_module>
          #
          # The following directives define some format nicknames for use with
          # a CustomLog directive (see below).
          #
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
          LogFormat "%h %l %u %t \"%r\" %>s %b" common
      
      
          <IfModule logio_module>
            # You need to enable mod_logio.c to use %I and %O
            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
          </IfModule>
      
      
          #
          # The location and format of the access logfile (Common Logfile Format).
          # If you do not define any access logfiles within a <VirtualHost>
          # container, they will be logged here.  Contrariwise, if you *do*
          # define per-<VirtualHost> access logfiles, transactions will be
          # logged therein and *not* in this file.
          #
          CustomLog "logs/access_log" common
      
      
          #
          # If you prefer a logfile with access, agent, and referer information
          # (Combined Logfile Format) you can use the following directive.
          #
          #CustomLog "logs/access_log" combined
      </IfModule>
      
      
      <IfModule alias_module>
          #
          # Redirect: Allows you to tell clients about documents that used to 
          # exist in your server's namespace, but do not anymore. The client 
          # will make a new request for the document at its new location.
          # Example:
          # Redirect permanent /foo http://localhost/bar
      
      
          #
          # Alias: Maps web paths into filesystem paths and is used to
          # access content that does not live under the DocumentRoot.
          # Example:
          # Alias /webpath /full/filesystem/path
          #
          # If you include a trailing / on /webpath then the server will
          # require it to be present in the URL.  You will also likely
          # need to provide a <Directory> section to allow access to
          # the filesystem path.
      
      
          #
          # ScriptAlias: This controls which directories contain server scripts. 
          # ScriptAliases are essentially the same as Aliases, except that
          # documents in the target directory are treated as applications and
          # run by the server when requested rather than as documents sent to the
          # client.  The same rules about trailing "/" apply to ScriptAlias
          # directives as to Alias.
          #
          ScriptAlias /cgi-bin/ "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/cgi-bin/"
      
      
      </IfModule>
      
      
      <IfModule cgid_module>
          #
          # ScriptSock: On threaded servers, designate the path to the UNIX
          # socket used to communicate with the CGI daemon of mod_cgid.
          #
          #Scriptsock logs/cgisock
      </IfModule>
      
      
      #
      # "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/cgi-bin" should be changed to whatever your ScriptAliased
      # CGI directory exists, if you have that configured.
      #
      <Directory "D:/welocalize/software/JBoss/mod_cluster-1.2.6.Final-windows-amd64/httpd-2.2/cgi-bin">
          AllowOverride None
          Options None
          Order allow,deny
          Allow from all
      </Directory>
      
      
      #
      # DefaultType: the default MIME type the server will use for a document
      # if it cannot otherwise determine one, such as from filename extensions.
      # If your server contains mostly text or HTML documents, "text/plain" is
      # a good value.  If most of your content is binary, such as applications
      # or images, you may want to use "application/octet-stream" instead to
      # keep browsers from trying to display binary files as though they are
      # text.
      #
      DefaultType text/plain
      
      
      <IfModule mime_module>
          #
          # TypesConfig points to the file containing the list of mappings from
          # filename extension to MIME-type.
          #
          TypesConfig conf/mime.types
      
      
          #
          # AddType allows you to add to or override the MIME configuration
          # file specified in TypesConfig for specific file types.
          #
          #AddType application/x-gzip .tgz
          #
          # AddEncoding allows you to have certain browsers uncompress
          # information on the fly. Note: Not all browsers support this.
          #
          #AddEncoding x-compress .Z
          #AddEncoding x-gzip .gz .tgz
          #
          # If the AddEncoding directives above are commented-out, then you
          # probably should define those extensions to indicate media types:
          #
          AddType application/x-compress .Z
          AddType application/x-gzip .gz .tgz
      
      
          #
          # AddHandler allows you to map certain file extensions to "handlers":
          # actions unrelated to filetype. These can be either built into the server
          # or added with the Action directive (see below)
          #
          # To use CGI scripts outside of ScriptAliased directories:
          # (You will also need to add "ExecCGI" to the "Options" directive.)
          #
          #AddHandler cgi-script .cgi
      
      
          # For type maps (negotiated resources):
          #AddHandler type-map var
      
      
          #
          # Filters allow you to process content before it is sent to the client.
          #
          # To parse .shtml files for server-side includes (SSI):
          # (You will also need to add "Includes" to the "Options" directive.)
          #
          #AddType text/html .shtml
          #AddOutputFilter INCLUDES .shtml
      </IfModule>
      
      
      #
      # The mod_mime_magic module allows the server to use various hints from the
      # contents of the file itself to determine its type.  The MIMEMagicFile
      # directive tells the module where the hint definitions are located.
      #
      #MIMEMagicFile conf/magic
      
      
      #
      # Customizable error responses come in three flavors:
      # 1) plain text 2) local redirects 3) external redirects
      #
      # Some examples:
      #ErrorDocument 500 "The server made a boo boo."
      #ErrorDocument 404 /missing.html
      #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
      #ErrorDocument 402 http://localhost/subscription_info.html
      #
      
      
      #
      # MaxRanges: Maximum number of Ranges in a request before
      # returning the entire resource, or 0 for unlimited
      # Default setting is to accept 200 Ranges
      #MaxRanges 0
      
      
      #
      # EnableMMAP and EnableSendfile: On systems that support it, 
      # memory-mapping or the sendfile syscall is used to deliver
      # files.  This usually improves server performance, but must
      # be turned off when serving from networked-mounted 
      # filesystems or if support for these functions is otherwise
      # broken on your system.
      #
      #EnableMMAP off
      #EnableSendfile off
      
      
      # Supplemental configuration
      #
      # The configuration files in the conf/extra/ directory can be 
      # included to add extra features or to modify the default configuration of 
      # the server, or you may simply copy their contents here and change as 
      # necessary.
      
      
      # Server-pool management (MPM specific)
      #Include conf/extra/httpd-mpm.conf
      
      
      # Multi-language error messages
      #Include conf/extra/httpd-multilang-errordoc.conf
      
      
      # Fancy directory listings
      #Include conf/extra/httpd-autoindex.conf
      
      
      # Language settings
      #Include conf/extra/httpd-languages.conf
      
      
      # User home directories
      #Include conf/extra/httpd-userdir.conf
      
      
      # Real-time info on requests and configuration
      #Include conf/extra/httpd-info.conf
      
      
      # Virtual hosts
      #Include conf/extra/httpd-vhosts.conf
      
      
      # Local access to the Apache HTTP Server Manual
      #Include conf/extra/httpd-manual.conf
      
      
      # Distributed authoring and versioning (WebDAV)
      #Include conf/extra/httpd-dav.conf
      
      
      # Various default settings
      #Include conf/extra/httpd-default.conf
      
      
      # Secure (SSL/TLS) connections
      #Include conf/extra/httpd-ssl.conf
      #
      # Note: The following must must be present to support
      #       starting without SSL on platforms with no /dev/random equivalent
      #       but a statically compiled-in mod_ssl.
      #
      <IfModule ssl_module>
      SSLRandomSeed startup builtin
      SSLRandomSeed connect builtin
      </IfModule>
      
      
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
      LoadModule proxy_http_module modules/mod_proxy_http.so
      
      
      LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
      
      
      LoadModule manager_module modules/mod_manager.so
      LoadModule slotmem_module modules/mod_slotmem.so
      LoadModule advertise_module modules/mod_advertise.so
      
      
      # MOD_CLUSTER_ADDS
      # Adjust to you hostname and subnet.
      <IfModule manager_module>
        Listen 127.0.0.1:6666
        ManagerBalancerName mycluster
        <VirtualHost 127.0.0.1:6666>
          <Location />
           Order deny,allow
           Deny from all
           Allow from 127.0.0
          </Location>
      
      
          KeepAliveTimeout 300
          MaxKeepAliveRequests 0
          #ServerAdvertise on http://127.0.0.1:6666
          AdvertiseFrequency 5
          #AdvertiseSecurityKey secret
          #AdvertiseGroup 224.0.1.105:23364
          EnableMCPMReceive
        AllowDisplay On
      
      
          <Location /mod_cluster_manager>
             SetHandler mod_cluster-manager
             Order deny,allow
             Deny from all
             Allow from 127.0.0
          </Location>
      
      
        </VirtualHost>
      </IfModule>
      
        • 1. Re: can not access application root
          jfclere

          If it worked once and you didn't change httpd configuration it means you changed something else:

          1 - something related with the firewall.

          2 - are you using the same configuration when starting the back-end?

          • 2. Re: can not access application root
            ohmygod

            Thanks.

            I just confirmed it also does not work if I rolledback my standalone*.xml to yesterday's for my jboss server. Pretty strange.

             

            Is there any method to debug this kind of problem?

            • 3. Re: Re: can not access application root
              ohmygod

              FYI. I have seen such information in the log during server startup.

               

              2013-12-10 16:00:00,259;[ServerService Thread Pool -- 62];INFO ;org.infinispan.remoting.transport.jgroups.JGroupsTransport;ISPN000078: Starting JGroups Channel
              2013-12-10 16:00:00,341;[ServerService Thread Pool -- 62];INFO ;stdout;
              2013-12-10 16:00:00,341;[ServerService Thread Pool -- 62];INFO ;stdout;-------------------------------------------------------------------
              2013-12-10 16:00:00,342;[ServerService Thread Pool -- 62];INFO ;stdout;GMS: address=node2/web, cluster=web, physical address=127.0.0.1:55300
              2013-12-10 16:00:00,343;[ServerService Thread Pool -- 62];INFO ;stdout;-------------------------------------------------------------------
              
              
              2013-12-10 16:00:02,412;[ServerService Thread Pool -- 62];INFO ;org.infinispan.remoting.transport.jgroups.JGroupsTransport;ISPN000094: Received new cluster view: [node2/web|0] [node2/web]
              2013-12-10 16:00:02,472;[ServerService Thread Pool -- 62];INFO ;org.infinispan.remoting.transport.jgroups.JGroupsTransport;ISPN000079: Cache local address is node2/web, physical addresses are [127.0.0.1:55300]
              
              
              

               

              but no such information which was there in yesterday's log

              2013-12-09 10:54:00,377;[Incoming-1,shared=udp];INFO ;org.jboss.as.clustering;JBAS010225: New cluster view for partition web (id: 1, delta: 1, merge: false) : [node1/web, node2/web]
              2013-12-09 10:54:00,383;[Incoming-1,shared=udp];INFO ;org.infinispan.remoting.transport.jgroups.JGroupsTransport;ISPN000094: Received new cluster view: [node1/web|1] [node1/web, node2/web]
              2013-12-09 10:55:48,999;[ContainerBackgroundProcessor[StandardEngine[jboss.web]]];INFO ;org.jboss.modcluster.ModClusterService;Engine [jboss.web] will use jvmRoute: 4e6189af-0502-3305-8ff3-fad7fee8b516
              
              • 4. Re: Re: can not access application root
                jfclere

                it looks like you use a different standalone*.xml file (--server-config). Check that the one you are using contains the modcluster subsystem.

                • 5. Re: Re: can not access application root
                  ohmygod

                  Yes, correct. I am using standalone-full-ha.xml, but as I mentioned, it worked yesterday but not working today without modifying anything in it...

                  • 6. Re: Re: can not access application root
                    jfclere

                    Then it is probably the firewall that blocks the advertise.

                    See http://docs.jboss.org/mod_cluster/1.2.0/html/faq.html#advertisemessage

                    You can use https://github.com/modcluster/mod_cluster/blob/master/test/java/Advertize.java to check that advertise is working and sending the correct IP:port (127.0.0.1:6666 according to the configuration).


                    Check that you can still access to /mod_cluster_manager on the box.


                    Check if there is any error in error_log.