Directions for running Lucee and ACF side-by-side with Windows IIS?

I’m currently running my blog on a Windows VPS w/ IIS. But, I’m eager to try running Lucee CFML on the same server (for another site). I tried googling for running Lucee CFML and Adobe ColdFusion side-by-side, and all the results are from circa 2016. Wondering if anyone can point me to directions on how to do this in 2022?

I assume that the only complicated part of this is the fact that IIS has to proxy to the correct ColdFusion port (8500 vs 8888) on a per-site basis. But, I’m just guessing that there’s not that much more to it. Just wondering if there are instructions written up about this anywhere?

Here is how I do this.

Install ACF, bind it to 127.0.0.1 port 8500
Install Lucee, bind it to 127.0.0.1 port 8888
Optionally, edit /winroot/system32/drivers/etc/hosts
add
127.0.0.1 site1-domain-name
127.0.0.1 site2-domain-name
Use IIS as a reverse proxy
Install URL Rewrite
Setup site 1 (AFC) site1-domain-name
Setup site 2, (Lucee) site2-domain-name

Create a Rule (Rule1-site1)
Rule - > Inbound rules
New blank rule
Name it something like site1-domain-inbound (or what ever schema you follow)
Pattern *.
Ignore case
Action Type / Rewrite
Rewrite URL: site1- {r:0}
In test patern
{r:0} becomes the Port and Domain or server or service you want, so for AFC 127.0.0.1:8500 or site-1-domainname
action type rewrite, append query
Now site 2, set up the same as site 1, save for now choose port 8888

That is it, nothing too complex or fancy.

When ACF was installed, though, I think it uses something like WSConfig and some ISAPI plug-in? This is really not an area that I know much about. But, are you saying that I can essentially use the URL rewriting tools to do whatever the wsconfig stuff is doing?

Yes, that is correct.

You can proxy anything to anything else.
Some mods give you some additional functionality and marginal security, but in the end, it really doesnt matter with a proxy if its f5 or nginx or IIS or anything else.

2 Likes

Super, super interesting. I’ll have to look at that, thanks!

1 Like

Around late 2021 and to this day I installed Lucee using lucee installation executable (which can be found here) and ACF various versions 2016-2021.

It was a straight shot no conflicts. Both installed with default settings and I’ve done this on a number of machines as I am almost purely Lucee now.

The WSConfig.exe found in the Coldfusion directory is pretty simple.

  • As a habit I launch as administrator (but I don’t think that’s necessary)
  • Select the instance name : default is : cfusion
  • Select the IIS Website
    and that’s pretty much it. WSConfig will restart IIS so just be ready for that brief service interruption (90 seconds tops… typically about 20 seconds).

WSConfig is something to be familiar with on the regular when on windows because sometimes IIS sites need to be ReConnected using WSConfig. Changes in IIS to IIS websites can break the connection. It’s rarely serious… you just need to use WSConfig to reconnect the site. Or sometimes IIS Websites don’t get auto connected during ACF install.

Additionally any NEW IIS Website you setup will need to be manually connected using WSConfig. I’ve been running enterprise multi instance for so long it’s becomes something as familiar as the HOSTS file to me.

I don’t know why Terry_Whitney example is so extensive (maybe he’s doing something more advanced)… I didn’t have to fiddle with any ports or HOSTS. As mentioned: ACF and Lucee went strait on as if they didn’t even know about each other…

… But I am also in the habit of always using domain names hardcoded in the HOSTS file which he detailed (where as many just go with localhost). Using domains or subdomains opens numerous options when on IIS (such as HostHeaders).

You’ll learn WSConfig in about 10 minutes tops…

** Also don’t forget to make a backup of the web.config file for any site you will be reconfiguring. I typically have a backup or to of web.config just sitting in the root just in case.

2 Likes

Thanks for the tip. I’ve had Adobe ColdFusion installed on this managed VPS for so long that I honestly haven’t even touched WSConfig in … I can’t even remember. None of this is second nature to me at this point. But, the nice thing, it’s just my blog … so what’s the worst that could happen :smiley:

I always thought WSConfig was something directly related to ColdFusion - I didn’t realize that it was perhaps more generally related to IIS.

https://lucee.daemonite.io/u/bennadel

I don’t know anyone who hasn’t learned something off your blog over the last decade or 2… so. Your blog is quite a valuable resource. So I’m happy to return the favor.

It’s unlikely you’ll get stuck on WSConfig… but if you do… just drop me a line. I run windows servers (whereas most do not).

4 Likes

You are very kind, good sir!

Ben,
another way to try things is to use commandbox from the ortus folks. This isolates both Adobe and Lucee and maybe especially useful in dev.

A word of caution on ACF and WSConfig. In my experience it does not play well with other tech on the server.
I reviewed this a while back but still may be the case. If your Adobe server is shut down or hanging, you will introduce about a minute timeout delay for each request to IIS regardless of what you are accessing. This is because WSConfig, at the time, injected blocking code into the IIS request-pipeline via its handlers. Thus, my suggestion is to only look at solutions that do not use WSConfig so your tech-stack is not unnecessarily slowed down.

If you use proxy patterns a few things need to be tested and/or adjusted, e.g:

  • client IPs determination
  • client authentication
  • websockets
  • http flushes
    etc

happy experimenting,
Bilal

1 Like

Thanks for the warning!

I would agree with that. But also say to just go straight Linux which would eliminate the need for BonCode and WSConfig. I’m told Docker is a good way to isolate instances so you can have the usual DEV/Live areas but have not actually tried it.

I understand Ben’s Original post about how this is just his blog… but the sooner we get familiar with the ideal stack ( that does not require these components - the better)

I doubt I’m alone when I say I want to get rid of both BonCode/AJP and WSConfig from the setup. In my experience BonCode has a lot to tinker with and is a common bottle neck.

I’ve just been too lazy to really go at it as I would love to get Rid of Windows completely both on my servers and desktops.

1 Like

I recommend just running commandbox as a service. Why complicate it? We’ve never had issues with this in production on either Linux or Windows.

1 Like

The only reason to not do that is that the ACF edition is already running as managed hosting with a managed control panel. And, I don’t want to mess that up :smiley: