Copy link to clipboard
Copied
Hello all.
Facing an set up configuration issue here. We have Application Server inside firewall and we are going to have Web Server out on the DMZ and that web server needs to communicate requests to the CF server.
I installed cfusion instance HTTP Port 8500 Remote Port 8010 host is local host, with no cluster. We will have other instances following one addition port for HTTP and Remote down the line.
So now the issue is how to I run the connector. If I run the shipped {cfroot}/cfusion/runtime/bin/wsconfig.exe, it shows localhost as the App Server, good there, but the web server is to be IIS, but on another IP address NOT this server, so the OK button stays gray.
One would think that you would need to run the connector on the Web Server, right? Well, I don't have CF installed on it nor do I plan on installing it on my web server, so how do I get the connector working on the Web Server.
I have read a post about taking a wsconfig.jar and pulling out DLL and such but that is with JRun and CF 8, not CF 11 and IIS 8.5. Maybe that is the method I need to follow but seems to be new ground that has never been posted in the CF Community. I like to think I am "special" but really? I am the first to have this set up configuration and no one has posted a BLOG on it. Seems strange OR I am totally missing something.
Please let me know any suggestions on how to move forward.
Running on Window Server 2012 R2 for CF Application Server and the Web Server. CF 11 E update 3.
ColdFusion 11 Distributed Environment for Connector with ALL sites:
1. Install ColdFusion11 on other server.
2. Once you install CF11, then copy this jar file "wsconfig.jar" from this location C:\ColdFusion11\cfusion\runtime\lib to the IIS server.
3. Configure IIS in other server. You have to make sure enable the following features at IIS the level.
ISAPI Extensions
ISAPI Filters
CGI
ASP .NET
5. ColdFusion11 server connect to webserver through Connector Port,
...Copy link to clipboard
Copied
I think that's referred to as "Distributed Mode". Here's a great blog post on how to do it in CF10 or CF11: ColdFusion Muse: Running ColdFusion 10 in Distributed Mode
-Carl V.
Copy link to clipboard
Copied
ColdFusion 11 Distributed Environment for Connector with ALL sites:
1. Install ColdFusion11 on other server.
2. Once you install CF11, then copy this jar file "wsconfig.jar" from this location C:\ColdFusion11\cfusion\runtime\lib to the IIS server.
3. Configure IIS in other server. You have to make sure enable the following features at IIS the level.
ISAPI Extensions
ISAPI Filters
CGI
ASP .NET
5. ColdFusion11 server connect to webserver through Connector Port, which is in server.xml. You can find this file in the C:\ColdFusion11\cfusion\runtime\conf, once you open the server.xml this is the port you will.
Example:- <Connector port="8014" protocol="AJP/1.3" redirectPort="8447" tomcatAuthentication="false" />
6. Now once you check everything in ColdFusion server, then come back to IIS webserver machine.
7. The wsconfig.jar file which you copied in this sever, rename the extension from .jar to .zip an extract it.
8. Create a same folder structure here C:\ColdFusion11\config\wsconfig\{Magic_Number} -- [Magic Number could be 1,2,3...n]
9. Now go to extracted folder wsconfig and check this isapi_redirect.dll, copy the DLL to this folder C:\ColdFusion11\config\wsconfig\{Magic_Number}. If you have 32bit then copy 32 bit if you have 64 bit DLL then copy 64 bit DLL.
Location for DLL in extracted folder
The IIS 64-bit DLL is in connector\isapi\intel-win64\prebuilt\amd64\isapi_redirect.dll
The IIS 32-bit DLL is in connector\isapi\intel-win\prebuilt\isapi_redirect.dll
10. Now in the same magic_number folder create a file "isapi_redirect.properties" and copy this content. Now the location and magic_number could be different.
extension_uri= /jakarta/isapi_redirect.dll
log_file= C:\ColdFusion11\config\wsconfig\1\isapi_redirect.log
log_level= info
worker_file= C:\ColdFusion11\config\wsconfig\1\workers.properties
worker_mount_file= C:\ColdFusion11\config\wsconfig\1\uriworkermap.properties
iis_buffer_enable= true
ip_restriction_file= C:\ColdFusion11\config\wsconfig\1\iprestriction.properties
auth_complete= 1
11. Create another file "uriworkermap.properties" and copy the below content
/cfformgateway/* = cfusion
/CFFormGateway/* = cfusion
/flex2gateway/* = cfusion
/flex2gateway = cfusion
/cffileservlet/* = cfusion
/CFFileServlet/* = cfusion
/cfform-internal/* = cfusion
/flashservices/gateway/* = cfusion
/flex-internal/* = cfusion
/rest/* = cfusion
/*.cfml/* = cfusion
/*.mxml = cfusion
/*.as = cfusion
/*.cfm = cfusion
/*.CFM = cfusion
/*.Cfm = cfusion
/*.cfm/* = cfusion
/*.swc = cfusion
/*.cfml = cfusion
/*.CFML = cfusion
/*.Cfml = cfusion
/*.cfc = cfusion
/*.CFC = cfusion
/*.Cfc = cfusion
/*.cfc/* = cfusion
/*.cfr = cfusion
/*.cfswf = cfusion
/*.sws = cfusion
/*.jsp = cfusion
/*.hbmxml = cfusion
12. Create another file "workers.properties" and copy this content
worker.list=cfusion
worker.cfusion.type=ajp13
worker.cfusion.host=localhost
worker.cfusion.port=8014
worker.cfusion.max_reuse_connections=250
13. Now go to one folder up which is C:\ColdFusion11\config\wsconfig and copy the "cfwin32.dll". Location
wsconfig\connectors\installers\intel-win\prebuilt\cfwin32.dll
wsconfig\connectors\installers\intel-win64\prebuilt\cfwin32.dll
14. Create a file "wsconfig.properties" and copy the below content. Bitness could be changes to 32 bit if you will use 32 bit environment, this file contains the IIS website and connector information. I have created this article as you will configure the connector with ALL the IIS websites, so the below setting will work.
1=IIS,0,true,"",bitness64
1.srv=localhost,cfusion
15. Now that we have created all the file and folder. We will add the IP address of ColdFusion11 machine so IIS can communicate with CF11. There are 2 places where we have to add the IP.
a. "workers.properties" file, where is says "localhost" replace it with IP address and
b. "wsconfig.properties" where is also says localhost replace it with IP address of ColdFusion11 machine.
16. Now we have to work on IIS manager, so launch IIS manager. We will make all the changes in IIS server level and when we restart IIS, it inherit all the handler mappings and ISAPI filter in all the sites.
17. Click on the Server and then click on Handler Mapping. Add Script Map and add these handlers .cfm, .cfc, .cfr, .cfml, and .cfswf and point it to this DLL. C:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll.
Click on Request Restriction, check Invoke and select Files and Folder and Ok. In Right Panel, click on Edit Feature Permission Select Execute.
Example: Request Path:- *.cfm
Executable:- C:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll
Name:- cfmHandler
NOTE: Add those handler which you will use don't add all of them.
18. Click on IIS server and select Default Document and add index.cfm as default document.
19. Click on IIS server and select ISAPI and CGI Restriction, select Add and "ISAPI and CGI path" 'C:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll', Description "tomcat_All". Check the Allow extension path to execute and press Ok.
Click on Edit Feature Setting in right panel and check both the boxes.
20. Click on IIS server and select ISAPI Filters and Add Filter name "tomcat" and Executable "C:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll"
21. Now you to add a Virtual Directory in each site else it won't work. To add Virtual directory Right click on your website Site and Add Virtual Directory. Alias name "jakarta" and Physical Path "C:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll" Press Ok.
Follow this step with the same Alias and same path to all the websites.
22. Restart IIS service and run any ColdFusion page. It will work.
Copy link to clipboard
Copied
@rahul_u Thank you for you detailed answer. I had read something similar but was not sure that that information still held with CF11 since it was written for CF9. So this was very helpful.
My follow up question to this, is: I would like to run clusters that more than one site would run on. EG A_Cluster would have lets just say two sites on, with the Connector Port being forward to the CF Server how would one go about setting up the configuration to go to the D:\website\wwwrootA and D:\website\wwwrootB on Cluster A?
I would think that the configuration on both the web server and the CF server would need to be modified slightly, but that is what I am attempting to ask here. Any references that I can read up on or suggestions?
Again, thank you for the information.
Copy link to clipboard
Copied
That seems a bit more complicated than the blog post I referred to, but maybe it details out some of the items that the blog post glosses over.
-Carl V.
Copy link to clipboard
Copied
Carl,
That is correct. The BLOG you referenced is 10,000 foot of what rahul_u gave the step by step instructions for.
Still struggling with Multi-Homing the CF Server. Any suggestions on that part of it Carl.
Matt
Copy link to clipboard
Copied
Matthew,
I've never multi-homed CF, only IIS. Might be able to be done through Tomcat, but not sure.
-Carl V.