Open a console window.
You can connect Adobe ColdFusion to the built-in web server and to external web servers, such as Apache, IIS, and Sun ONE Web Server (formerly known as iPlanet).
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:
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:
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:
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._
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:
|
||
Sun ONE Web Server |
The Web Server Configuration Tool adds the following elements to Sun ONE Web Server configuration files:
|
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.
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.
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.
Open a console window.
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.
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.
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:
|
{{-dir }} |
Specifies the path to the configuration directory (SunONE config). |
-site |
Specifies the IIS website name (case-sensitive). Specify All or 0 to configure the connector at a global level, 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. |
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.
If you use Apache or Sun ONE Web Server, use these files as prototypes, editing, and saving them as appropriate for your site.
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 |
Configure Sun ONE Web Server on UNIX:
cf_root/runtime/bin/wsconfig -ws sunone -dir [path to config] -coldfusion -v |
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.
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.
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.
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>
The following is a typical obj.conf file for iPlanet, or Sun ONE Web Server:
Init fn="load-modules" shlib="CF_install/config/wsconfig/2/nsapi_redirect.dll" funcs="jk_init,jk_service"
Init fn="jk_init" worker_file="CF_install/config/wsconfig/2/workers.properties" log_level="info" log_file="CF_install/config/wsconfig/2/nsapi.log" shm_file="CF_install/config/wsconfig/2/jk_shm"
The following is a typical magnus.conf file for iPlanet, or Sun ONE Web Server:
<Object name="default"> NameTrans fn="assign-name" from="/*.hbmxml" name="jknsapi" NameTrans fn="assign-name" from="/*.jsp" name="jknsapi" NameTrans fn="assign-name" from="/*.sws" name="jknsapi" NameTrans fn="assign-name" from="/*.cfswf" name="jknsapi" NameTrans fn="assign-name" from="/*.cfr" name="jknsapi" NameTrans fn="assign-name" from="/*.cfc/*" name="jknsapi" NameTrans fn="assign-name" from="/*.cfc" name="jknsapi" NameTrans fn="assign-name" from="/*.cfml" name="jknsapi" NameTrans fn="assign-name" from="/*.swc" name="jknsapi"NameTrans fn="assign-name" from="/*.cfm/*" name="jknsapi" NameTrans fn="assign-name" from="/*.cfm" name="jknsapi" NameTrans fn="assign-name" from="/*.as" name="jknsapi" NameTrans fn="assign-name" from="/*.mxml" name="jknsapi" NameTrans fn="assign-name" from="/*.cfml/*" name="jknsapi" NameTrans fn="assign-name" from="/rest/*" name="jknsapi" NameTrans fn="assign-name" from="/flex-internal/*" name="jknsapi" NameTrans fn="assign-name" from="/flashservices/gateway/*" name="jknsapi" NameTrans fn="assign-name" from="/cfform-internal/*" name="jknsapi" NameTrans fn="assign-name" from="/CFFileServlet/*" name="jknsapi" NameTrans fn="assign-name" from="/cffileservlet/*" name="jknsapi" NameTrans fn="assign-name" from="/flex2gateway" name="jknsapi" NameTrans fn="assign-name" from="/flex2gateway/*" name="jknsapi" NameTrans fn="assign-name" from="/CFFormGateway/*" name="jknsapi" NameTrans fn="assign-name" from="/cfformgateway/*" name="jknsapi" NameTrans fn="pfx2dir" from="/CFIDE" dir="C:/ColdFusion2016/cfusion/wwwroot/CFIDE" AuthTrans fn="match-browser" browser="*MSIE*" ssl-unclean-shutdown="true" NameTrans fn="ntrans-j2ee" name="j2ee" NameTrans fn="pfx2dir" from="/mc-icons" dir="C:/Program Files/Oracle/WebServer7/lib/icons" name="es-internal" PathCheck fn="uri-clean" PathCheck fn="check-acl" acl="default" PathCheck fn="find-pathinfo" PathCheck fn="find-index-j2ee" PathCheck fn="find-index" index-names="index.html,home.html,index.jsp" ObjectType fn="type-j2ee" ObjectType fn="type-by-extension" ObjectType fn="force-type" type="text/plain" Service method="(GET|HEAD)" type="magnus-internal/directory" fn="index-common" Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file" Service method="TRACE" fn="service-trace" Error fn="error-j2ee" AddLog fn="flex-log" </Object>
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:
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.
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:
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.
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.
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:
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" -v
For 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.
To configure a connector:
Individually:
All:
All-individually:
Click this link to access the video.
Sun One/iPlanet support is not available in ColdFusion (2016 release).
When you use Sun ONE Web Server version 6, you use the Server Administrator to create virtual servers and run the Web Server Configuration Tool. You store ColdFusion pages under the web root of each virtual server.
Earlier versions of Sun ONE/iPlanet creates separate server instances for each site. Run the Web Server Configuration Tool once for each site.
Using the Sun ONE Web Server Administrator, create virtual web servers for ColdFusion to use. For more information, see your Sun ONE Web Server documentation.
Configure DNS for each virtual website, as described in your web server documentation.
Test each virtual server to ensure that HTML pages are served correctly.
Run the Web Server Configuration Tool, as follows:
Command line - Specify -ws sunoneand the directory that contains the obj.conf file, as the following example shows:
cf_root/runtime/bin/wsconfig -ws sunone -dir [path to config] -coldfusion -v
Test each virtual server to ensure that ColdFusion pages are served correctly.
Sign in to your account