6 Replies Latest reply on Dec 19, 2014 11:40 AM by Carl Von Stetten

    CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)

    Matthew C. Parks Level 1

      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.

        • 1. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
          Carl Von Stetten Adobe Community Professional & MVP

          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.

          • 2. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
            rahul_u Adobe Employee

            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.

            • 3. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
              Matthew C. Parks Level 1

              @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.

              • 4. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
                Carl Von Stetten Adobe Community Professional & MVP

                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.

                • 5. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
                  Matthew C. Parks Level 1

                  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

                  • 6. Re: CF 11 Enterprise Install on App Server and IIS 8.5 on Web Server (different Hardware)
                    Carl Von Stetten Adobe Community Professional & MVP

                    Matthew,

                     

                    I've never multi-homed CF, only IIS.  Might be able to be done through Tomcat, but not sure.

                    -Carl V.