Open a console window.
- Install and configure ColdFusion User Guide
- Install ColdFusion
- ColdFusion server profiles
- Install ColdFusion
- Configure your system
- ColdFusion Licensing and Activation
- Install ColdFusion configuration
- Install ColdFusion silently
- Install integrated technologies
- Configure ColdFusion
- CFSetup configuration tool
- Command Line Interface (CLI)
- Administer ColdFusion
- Use the ColdFusion administrator
- Data Source Management for ColdFusion
- Connect to web servers
- Deploy ColdFusion applications
- Administer ColdFusion security
- Use multiple server instances
- ColdFusion Administrator API Reference
You can connect Adobe ColdFusion to the built-in web server and to external web servers, such as Apache and IIS.
About web servers in ColdFusion
The web server is a critical component in your ColdFusion environment, and understanding how ColdFusion interacts with web servers can help you administer your site. ColdFusion provides the following web server options:
- Built-in web server A Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1 protocol for the web server or application container. Coyote listens for incoming connections on a specific TCP port on the server and forwards the request to the Tomcat Engine. Tomcat Engine processes the request and send back a response to the requesting client. For more information, see Using the built-in web server.
- External web server A customized web server connector module that forwards requests for ColdFusion pages from an external web server to ColdFusion. For more information, see Using an external web server.
Using the built-in web server
The ColdFusion server configuration is built on top of Tomcat, also called the built-in web server. The built-in web server is useful in the following cases:
- Coexistence/transition The built-in web server lets you run a previous version of ColdFusion (using an external web server) and ColdFusion (using the built-in web server) on the same computer while you migrate your existing applications to ColdFusion.
Development If your workstation runs ColdFusion but does not run an external web server, you can still develop and test ColdFusion applications locally through the built-in web server. All web servers listen on a TCP/IP port, which you can specify in the URL. By default, web servers listen for HTTP requests on port 80 (for example, http://www.adobe.com and http://www.adobe.com:80 are the same). Similarly, port 443 is the default port for https requests.By default in the server configuration, the built-in web server listens on port 8500. For example, to access the ColdFusion Administrator through the built-in web server, specify http://_servername_:8500/CFIDE/administrator/index.cfm.
Whenever possible, configure your external web server as part of the ColdFusion installation, except for the two cases mentioned previously (coexistence with a previous ColdFusion version, and when the computer has no web server). If you select the built-in web server by mistake, run the Web Server Configuration Tool manually to configure your external web server after the installation. For information about the Web Server Configuration Tool, see Web server configuration.If you enable the built-in web server during the installation process and the port is already in use, the installer automatically finds the next-highest available port and configures the built-in web server to use that port. To determine the port number used by the built-in web server, open the cf_root/runtime/conf/server.xml file in a text editor and examine the port attribute of the connector. For example, <Connector port="8504" protocol="org.apache.coyote.http11.Http11Protocol>.Keep in mind the following when using the built-in web server:
- The default web root when using the built-in web server is cf_root/cfusion/wwwroot (server configuration). By default, the ColdFusion Administrator (CFIDE directory) is under this web root.
If you want the built-in web server to serve pages from a different web root directory, define a virtual mapping in the cf_root/cfusion/runtime/conf/server.xml file. Search for the string, "To add virtual directory." Uncomment the entry context path below. To add a virtual directory, add the aliases attribute as shown below:
<Context path="/" docBase="<absolute_path_to_CF_install_directory>\wwwroot" WorkDir="<cf_home>\runtime\conf\Catalina\localhost\tmp" aliases="/path1=<absolute_path_to_directory1>,/path2=<absolute_path_to_directory2>"></Context>
If you have CFML pages under your external web server's root, ensure that ColdFusion is configured to serve these pages through the external web server. If you did not configure ColdFusion_ to use an external web server, your external web server serves ColdFusion Markup Language (CFML) source code for ColdFusion pages saved under its web root._
Using an external web server
ColdFusion uses the Tomcat web server connector to forward requests from an external web server to the ColdFusion runtime system.
When a request is made for a CFM page, the connector on the web server opens a network connection to the Tomcat proxy service. The ColdFusion runtime system handles the request and sends its response back through the proxy service and connector. The web server connector uses web-server-specific plug-in modules, as the following table describes:
Web server |
Connector details |
---|---|
Apache |
The Web Server Configuration Tool adds the following elements to the Apache httpd.conf file:
|
IIS |
The Web Server Configuration Tool adds the following elements at either the global level (default) or website level:
|
Note that the connector needs to be re-configured, if new sites are added after the connector has been configured with the 'All Sites' option in IIS.
Web server configuration
ColdFusion uses the Web Server Configuration Tool to configure an external web server with the modules and settings that the connector requires connect to ColdFusion. You can run the Web Server Configuration Tool through either the command-line interface or the graphical user interface (GUI). In either case, the Web Server Configuration Tool configures your external web server to interact with a ColdFusion server.
Using GUI mode
The Web Server Configuration Tool includes a GUI mode, which you can use to specify external web server configuration settings through a graphical interface.
When you use the Web Server Configuration Tool in GUI mode, select the Configure Web Server for ColdFusion Applications check box.
Run the Web Server Configuration Tool in GUI mode
-
Note:
In Windows, to start the Web Server Configuration Tool, select Start > All Programs > Adobe > ColdFusion 2016 > Web Server Configuration Tool.
-
Change to the cf_root/cfusion/runtime/bin.
-
Start the Web Server Configuration Tool using the wsconfig.exe (Windows) or wsconfig (UNIX) command. The Web Server Configuration Tool window appears.
-
Click Add.
-
Select Configure Web Server For ColdFusion Applications.
-
Provide the application server host and the application server cluster.
Note:The server or cluster does not have to reside on the web server computer. In this case, enter the IP address or server name of the remote computer.
-
In the Web Server Properties area, enter web-server-specific information, and click OK.
-
(Optional) The web server connector does not serve static content (such as HTML files and images) from the built-in web server's root directory. If your ColdFusion web application has an empty context root and you want to serve pages from the built-in web server's root directory, you can create a web server mapping to the corresponding directory under the built-in web server.
Using the command-line interface
-
Open a console window.
-
Change to the cf_root/runtime/bin (server configuration) directory.
-
Execute the wsconfig.exe (Windows) or wsconfig (UNIX) command:
wsconfig.exe [-options]
./wsconfig [-options]
The following table describes the options:
Option
Description
-ws
Specifies the web server, as follows:
- IIS
- Apache
{{-dir }}
Specifies the path to the configuration directory.
-site
Specifies the IIS website name (case-sensitive). Specify All or 0 to configure the connector globally, which applies to all IIS websites.
{{-host }}
Specifies the ColdFusion server address. The default value is localhost.
-norestart
Specifies not to restart the web server.
-cluster
Specifies the Tomcat cluster name. Use this option to define a connection to a Tomcat cluster instead of a single server.
-l
Enables verbose logging for the connector.
-upgrade
Upgrades existing configured connectors with newer modules from a newer wsconfig.jar file.
-service
Specifies the Apache Windows service name. The default value is Apache.
-bin
Specifies the path to the Apache server binary file (apache.exe in Windows, httpd on UNIX).
-script
Specifies the path to the Apache UNIX control script file (apachectl, but slightly different with certain Apache variants, such as Stronghold).
-v
Enables verbose output from the Web Server Configuration Tool.
-list
Lists all configured web servers.
-list -host server-host
Lists all Tomcat servers on the specified host.
-remove
Removes a configuration. Requires the ws and either the dir or site options.
-uninstall
Removes all configured connectors.
{{-h }}
Lists all parameters.
Using the batch files and shell scripts
The ColdFusion server configuration includes batch files and shell scripts that implement typical command-line connector configurations. These files are in the cf_root/bin/connectors directory. For example, the IIS_connector.bat file configures all sites in IIS to site 0, which establishes a globally defined connector so that all sites inherit the filter and mappings.
Command-line interface examples
Configure a specific IIS site:
cf_root/runtime/bin/wsconfig.exe -ws iis -site "web31" -v
On systems where all sites run ColdFusion, there is generally no need to configure an individual site.
Configure all existing IIS sites (ISPs):
cf_root/runtime/bin/wsconfig.exe -ws iis -site 0 -v
Configure Apache on UNIX #1:
cf_root/runtime/bin/wsconfig -ws Apache -bin /opt/apache2/bin/httpd -script /opt/apache2/bin/apachectl -dir /opt/apache2/conf -v
Configure Apache on UNIX #2:
cf_root/runtime/bin/wsconfig -ws Apache-bin /usr/bin/httpd -script /usr/bin/httpd -dir /etc/httpd/conf -coldfusion -v
Configure Apache in Windows:
cf_root/runtime/bin/wsconfig.exe -ws apache -dir "c:\program files\apache group\apache2\conf" -coldfusion -v
Configuration files
Each time you run the Web Server Configuration Tool, it creates a configuration file and directory. For example, the first time you run the tool in the server configuration, it creates files under cf_root/config/wsconfig/1; the second time, it creates cf_root/config/wsconfig/2; and so on. Each of these subdirectories contains the appropriate platform-specific connector module and web-server-specific supporting files.
Backing up connector files
WS Config backs up the connector files when you un-configure or reconfigure the connector. It helps you to compare the new connector files with the backed up files and redo the required customization.
All files available under connector directory (../ColdFusion/config/wsconfig/magicnumber) are backed up in a directory named magicnumber.1 or magicnumber.2 and so on, depending on the number of previous backup directories that are available for same connector. These directories are available in backup directory (../ColdFusion/config/wsconfig/backup) . For instance, if you are about to un-configure a connector which is configured under ../wsconfig/2/ , its files are backed up in ../wsconfig/backup/2.1. If this is the second time you are un-configuring the connector, then ../wsconfig/backup/2.1 is already present. In that case files are saved under ../wsconfig/backup/2.2.
In case of Apache connector, mod_jk.conf , which is present in Apache conf directory is also backed up under ../wsconfig/backup/2.2 directory. Also, if you are un-configuring from command line then connector is backed up by default but if you are un-configuring using WS Config UI tool, you get an option to either accept or deny the backup before un-configuring the connector. This is valid for all connectors and in all the supported platforms.
Sample configuration files
The following are some examples of connector-specific web server properties that help describe the web server configuration file parameters. These examples assume that Tomcat and the web server are on the same computer.
Apache configuration file
The following is a typical httpd.conf file for an installation of ColdFusion on the same computer as an Apache 2.0 web server. The httpd.cof file includes the following entry:
Include "Apache_install\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
The mod_jk.conf file has the following:
# # Load mod_jk module LoadModule jk_module "CF_install\config\wsconfig\1\mod_jk.so" # Where to find workers.properties JkWorkersFile "CF_install\config\wsconfig\1\workers.properties" JkMountFile "CF_install\config\wsconfig\1\uriworkermap.properties" # Where to put jk logs JkLogFile "CF_install\config\wsconfig\1\mod_jk.log" # Where to put jk shared memory JkShmFile "CF_install\config\wsconfig\1\jk_shm" # Set the jk log level [debug/error/info] JkLogLevel info # Select the timestamp log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " AddHandler jakarta-servlet .cfm .cfml .cfc .cfr .cfswf Alias /CFIDE "CF_install\cfusion\wwwroot\CFIDE" <Directory "CF_install\cfusion\wwwroot\CFIDE"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Files ~ ".hbmxml$"> Order allow,deny Deny from all </Files>
Multihoming
You typically use the Web Server Configuration Tool to configure a connection between the web server and ColdFusion server running on the same computer. However, you can use the web server connector to route requests to multiple virtual sites to a single ColdFusion server. This is known as multihoming.
In a multihomed environment, you have multiple virtual hosts (also known as virtual sites) connected to a single ColdFusion server. You might use these virtual hosts for separate applications, such as Human Resources (HR), payroll, and marketing, or for separate users in a hosting environment.
Multihoming configuration tasks include:
- Enabling access to the ColdFusion Administrator If any of the applications under a virtual host need to access the ColdFusion Administrator, create a web server mapping (Alias directive in Apache) for /CFIDE that points to the original CFIDE directory. Alternatively, you can copy the entire CFIDE directory to the virtual website.
- Enabling access to the cfform.js file If you do not create a web server mapping for /CFIDE, and any of the applications under a virtual host use the cfformtag, enable the virtual host to find the JavaScript files under the CFIDE/scripts directory. To enable access to the scripts, use one of the following options:
- Copy the original_web_root/CFIDE/scripts directory to a CFIDE/scripts directory on your virtual host.
- Modify all cfform tags to use the scriptsrc attribute to specify the location of the cfform.js file.
- Disabling the cacheRealPath attribute To ensure that ColdFusion always returns pages from the correct server, disable Cache Web Server Paths in the Caching page of the ColdFusion Administrator. The procedures you perform to enable multihoming differ for each web server.
IIS
When you use IIS, you run the IIS Administrator to create additional websites and run the Web Server Configuration Tool. You store ColdFusion pages under the web root of each virtual website.
Connect multiple virtual sites on IIS to a single ColdFusion server
-
Use the IIS Administrator to create virtual websites, as necessary. The web root directory should enable read, write, and execute access. For more information, see your IIS documentation.
-
Configure DNS for each virtual website, as described in your IIS documentation.
-
Test each virtual website to ensure that HTML pages are served correctly.
-
Run the Web Server Configuration Tool, as follows:
- GUI - Select IIS for the Web Server, select All from the IIS Web Site drop-down list, and select the Configure Web Server for ColdFusion Applications check box.
Command line - Specify the -site 0option, as the following server configuration example shows:
cf_root/runtime/bin/wsconfig.exe -ws iis -site 0 -v
-
Test each virtual website to ensure that ColdFusion pages are served correctly.
Apache
When you use Apache, you modify the apache_root/conf/httpd.conf file to create virtual hosts and run the Web Server Configuration Tool. You store ColdFusion pages under the web root of each virtual website.
Connect multiple Apache virtual hosts on a web server to a single ColdFusion server
-
Configure DNS for each virtual website, as described in your web server documentation.
-
Open the apache_root/conf/httpd.conf file in a text editor and create virtual hosts, as necessary. For more information, see your Apache documentation. For example:
... NameVirtualHost 127.0.0.1 <VirtualHost 127.0.0.1> ServerAdmin admin@yoursite.com DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs" ServerName SERVER02 ErrorLog logs/error.log </VirtualHost> <VirtualHost 127.0.0.1> ServerAdmin admin@yoursite.com DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs2" ServerName mystore ErrorLog logs/error-store.log </VirtualHost> <VirtualHost 127.0.0.1> ServerAdmin admin@yoursite.com DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs3" ServerName myemployee ErrorLog logs/error-employee.log </VirtualHost> ...
-
Test each virtual host to ensure that HTML pages are served correctly.
-
Run the Web Server Configuration Tool, as follows:
- GUI - Specify Apache for the Web Server, specify the directory that contains the httpd.conf file, and select the Configure Web Server for ColdFusion Applications check box.
Command line - Specify -wsapacheand the directory that contains the httpd.conf file, as the following example shows:
cf_root/runtime/bin/wsconfig.exe -ws apache
-dir "c:\program files\apache group\apache2\conf" -vFor additional UNIX command-line examples, see Using the command-line interface. The Web Server Configuration Tool updates the httpd.conf file. For a sample, see Apache.
-
Restart Apache. You store ColdFusion files for each virtual host in the directory specified by the DocumentRoot directive.
-
Test each virtual host to ensure that ColdFusion pages are served correctly.
On Ubuntu, the bundled Apache Server will be configured with ColdFusion. The request for CFFileServlet and other servlet mapping requests will fail. This is because the default Apache Server running on 80, uses default virtual host. So the connector configuration with bundled Apache Server needs additional steps for user to manually add JkMountFile entry of uriworkermap.properties found in mod_jk.conf to default virtual host setting found in /etc/apache2/sites-available/default.
Configuring ColdFusion Connector with Apache Virtual Hosts
To configure a connector:
Individually:
- Windows: wsconfig.exe -ws Apache -dir <path to apache conf> -vhost <vhost server name>
- Non-windows: ./wsconfig -ws Apache -dir <path to apache conf> -vhost <vhost server name>
All:
- Windows: wsconfig.exe -ws Apache -dir <path to apache conf> -vhost All
- Non-windows: ./wsconfig -ws Apache -dir <path to apache conf> -vhost All
All-individually:
- Windows: wsconfig.exe -ws Apache -dir <path to apache conf> -vhost All-individually
- Non-windows: ./wsconfig -ws Apache -dir <path to apache conf> -vhost All-individually
Configuring ColdFusion Connector with Apache Virtual Hosts (Community Video)
Click this link to access the video.