Which do you think is better? When running CF on a...
# cfml-general
t
Which do you think is better? When running CF on a Windows 2019 Enterprise server, should I use IIS or Apache?
s
Not sure if either one is “better”, when I windows I typically use IIS, when on Linux I use apache
c
IMO unless there is a compelling business reason to use Apache, I'd use the web server that comes with the OS (IIS) and is updated/patched by the Windows Update process to maintain security. That said, if you have a mixture of Windows/Linux web servers in operation and choose to use Apache for consistency of configurations, that would make sense.
❤️ 1
s
Yeah, the only time I really use apache on windows is for dev environments where the prod servers are linux/apache
And that’s only when I’m forced to… I would typically set up a mac osx dev environment if I could to keep things a little more linux like in terms of file paths and stuff
s
i’ve always been curious the preference for running a windows server over a linux server in production. I know older version of Adobe CF required it, but for today, the only advantage I have really heard of is maybe having a GUI, and a little more throughput on the IIS side. Are there others? If so, would love to know what they are?
s
I think the GUI is probably the biggest factor… at least that was my biggest reason pre-2008. In 2008 I was forced into using linux/apache environments by a job change, and once I got through the initial learning curve I found it much easier to manage the linux servers.
c
My organization is almost exclusively Microsoft Windows servers. There may be some servers running Linux as part of a turnkey product, but they are the exception. In recent years, it has become possible to deploy most (but not all) of our GIS tech stack on Linux, but it would be costly to switch over and we'd lose some of the Active Directory integration.
j
Why not just run commandbox as a service? It's quite capable.
👍🏻 1
👍 1
s
Nginx 🙂
For many, many years, I ran CF (of various flavors) with a simple HTTP proxy instead of the (often problematic) web connector. For the last few years, we've run our CF apps via CommandBox in production, initially with Apache and an HTTP proxy but for the last year or so with Nginx and an HTTP proxy.
s
I've done iis and commandbox on quite a few servers. Others are coldfusion and iis also Windows. I think it might come down to personal preference if you have control over the oS
OS*
a
Nginx 🙂
I was about to say: this whole thread is begging the question.
And also... preference and anecdote aside... can anyone pony-up any actual proper position on why IIS / Apache / etc is better in either situation?
Me? I'd just use Nginx. But I'd not run a Windows machine as a web server. Just seems weird. I am not anti-MS (at all!), just Windows seems like an odd pick. I'd use it for a DB server or a messaging server, or a file sharing server etc, but not for a web server / web application server.
s
As I understand it (I don’t claim to be a master of the topic), IIS performs slightly faster on windows than Apache does, also you would have the advantage of security updates being part of the Windows updates and patches where Apache updates are more manual
But then apache is probably generally less in need of patching
a
Fair cop re performance, although it still begs the question as to why one would use Windows to run a web server in the first place. I wonder what the industry vigilance re web server security issues is, IIS cf Apache? Seems to me like one is relying on MS to deal with IIS, but the community re Apache.
I suspect the answer is "if you have to ask on a CFML slack forum, then just pick whatever [someone else] can manage for you. You yourself should probs not be making this decision anyhow".
1
s
That I don’t know beyond ui preference.. I always recommend linux for new development
1
a
ie: any combo is fine. Provided appropriately-skilled professionals are maintaining it.
s
I also generally don’t to system admin/dev ops stuff personally anymore… I have devops people for that
So I’ve been more abstract for the last 10 years or do
a
Also @TEMann. Your CF instance should not generally be on the same box as your web server anyhow. So not sure the question is the right one to be asking.
s
why not?
a
pen vector. Yer web server has to be on the front of your DMZ. Your app server can be on the other side of it.
Same as how one wouldn't have one's DB on the front-facing side of the DMZ
s
fair point, i guess i was confused on what you meant by web server. however that can be solved in other ways such as having a firewall before your web server
t
Great discussion. thanks for the thoughtful insights
s
We have Nginx on the same box as our "app servers" but that's purely for routing requests via host headers to the appropriate app via localhost and ports. We have a load balancer in front of that and then a firewall in front of that and then CloudFlare in front of that 🙂
1
t
@seancorfield Sounds similar to our setup honestly
s
And I switched the company from Windows / IIS / ACF / SQL Server to Linux / Apache / Railo (then Lucee) / MySQL over a decade ago. In the last year we switched to Nginx (and nearly all our CFML is gone now, replaced by Clojure apps).
s
from a pure configuration perspective, if your setting up multiple sites, I like apache or nginx because it makes it easy to copy configuration, setup advanced rules, and enable/disables sites from the commandline. but if its only hosting a single site like they all work fine. usually your bottleneck in terms of performance will not be at that point
👍 1