14 Replies Latest reply on Aug 5, 2014 7:15 AM by jratka

    FMS13 in a 2-machine deployment plus Linux web server

    nealalanfrank

      Greetings all,

       

      I've not been able to find anything that could tell me if it is possible to deploy FMS13 in a 2-machine configuration and still have the web server be on a linux box, so a third machine if you will. Everything i've seen seems to indicate that in order to have the web server be on a linux box FMS must be in a single-machine configuration. Is this true? I've got a client who is wanting to spread the load from her website by re-deploying her FMS in the two-machine configuration, but her web server is on a Linux machine.

       

       

      Best,
      Neal

        • 1. Re: FMS13 in a 2-machine deployment plus Linux web server
          wimdecorte

          nealalanfrank wrote:

           

          Everything i've seen seems to indicate that in order to have the web server be on a linux box FMS must be in a single-machine configuration. Is this true?

           

          No, because that would imply that FMS can run on a Linux box and it can't.

          • 2. Re: FMS13 in a 2-machine deployment plus Linux web server
            johnnyb

            The simple answer is, no. The modules that power FileMaker WebDirect are compiled for either Windows or Mac OS and are designed for integration on those platforms. It's true that many of the components of the architecture are familiar, like Apache and Tomcat, but the implementation here is very tightly integrated. You'll find yourself down an ugly road if you try too hard to split them out. And I know it's tempting to want to do so.

             

            The longer answer:

             

            It's worth noting that WebDirect is a whole web application. The fact that it's a web server underneath really belies the scope of what's happening, which goes well beyond serving web pages. It's less like WordPress, which runs as a series of php scripts in conjunction with Apache, and more like a number of headless instances of FileMaker Pro on your web server, with the GUI translated into HTML, JavaScript, and CSS and then served by modules integrated with an HTTP service. Every user session with WebDirect spins up a new instance of this application, which consumes 200MB or more of RAM on the server. Every WebDirect user gets their own application instance, and their session is very tightly coupled between the client-side javascript application running in the browser and the server-side application running in Tomcat. It's one to one. You don't have any room here to do distributed load balancing.

             

            What you're going to want to do is stick with the two-server configuration as provided by FileMaker. You'll get one server that runs the database engine and its supporting services, and one server that runs as many instances of the WebDirect application as your available resources can handle. There's a lot of great documentation on resource planning for this, but it all boils down to "no, seriously, more is better." And, in general, for now at least, forget load balancing.

             

            All this having been said, I have had good results with SSL offloading. I have a caching proxy server at the edge, and clients connect to this proxy server via SSL. The certificates are all on this server, and all the SSL encryption is done on this server. On the back-end, the proxy communicates with the WebDirect worker machine via unencrypted HTTP. This relieves the CPU load somewhat on the Worker machine, which doesn't have to spend cycles on encryption. The proxy can then be fairly lightweight. It also gives you another layer of protection between the public Internet and your private FileMaker servers.

             

            If you have a proxy server that can do it (apache, squid, nginx) and you have a penchant for going nuts, you can use multiple proxy servers and session binding to link multiple proxies to one Worker server. This has very slim advantages, though. SSL is not really that resource-intensive, and you'll still be limited in scale by what your Worker machine can do. It's also very important to do it right, to prevent a user constantly being logged-out, or worse, hijacking another user's session. Multiple proxies is probably not worth doing.

             

            Finally, there are ways that you might be able to replicate your static container field data from the database engine server to static resource servers (a la CDN), and then use your proxy server to map the incoming requests. But again, the advantages are slim to none. Static resources are really easy to handle, and the Filemaker servers handle them well. The proxy server will have to work harder to sort out what goes where than the web server will have to work to just serve it up directly. This is going to be more complexity than it's likely to be worth.

             

            So I would generally not waste much time on trying to do load balancing for its own sake here. By all means, re-deploy in a two machine configuration. But leave your existing web server for lightweight web-serving purposes. Give your Worker machine gobs of resources… at least 200MB per anticipated concurrent user and as many cores as you can. And consider SSL offloading if you think it might help.

             

            Hope this helps. Good luck.

            • 3. Re: FMS13 in a 2-machine deployment plus Linux web server
              nealalanfrank

              Thank you for this reply. I truly appreciate the effort you put into it. I have a clarification question. When you say "...leave your existing web server for lightweight web-serving purposes.", which in this case would be a Linux box, do you mean that when we re-deploy the FMS13 as a 2-machine the "worker" will also be a web server but that the web site will remain on the Linux box and WebDirect will use the Worker machine's web server?

              • 4. Re: FMS13 in a 2-machine deployment plus Linux web server
                johnnyb

                Exactly. The Worker machine runs its own web server, be it Apache on OS X or IIS on Windows. Your existing web site would remain separate on your linux server and won't be involved with FileMaker at all.

                 

                For a two-machine deployment, we're talking two Windows servers or two Mac servers. FileMaker Server components are not available for Linux systems.

                • 5. Re: FMS13 in a 2-machine deployment plus Linux web server
                  nealalanfrank

                  Thank you so much! Okay, I think that answers it. So, the web site will continue to exist on the Linux box and can make calls to the FMS13 installation, Master machine?, but any WebDirect connections will go to the Worker machine's web server. I'm acting as a go-between here so forgive me all the clarification questions. I just don't want to tell the client one thing only to discover I'd left out a crucial point you needed in order to accurately answer this post.

                   

                  Thanks again Johnnyb!

                  • 6. Re: FMS13 in a 2-machine deployment plus Linux web server
                    johnnyb

                    That sounds about right. What you describe is totally feasible. I leave it up to you what will ultimately make the most sense for your intended usage, but feel free to continue the discussion if you have further questions. You have a lot of flexibility at your disposal, depending on what you want to do for your client.

                     

                    Cheers

                    • 7. Re: FMS13 in a 2-machine deployment plus Linux web server
                      Malcolm

                      Thank you so much! Okay, I think that answers it. So, the web site will continue to exist on the Linux box and can make calls to the FMS13 installation

                       

                      FMPro and FMGo will address the master machine. PHP, XML and WebDirect will talk to the worker machine.

                       

                      Malcolm

                      • 8. Re: FMS13 in a 2-machine deployment plus Linux web server
                        nealalanfrank

                        So, leave the Linux box alone to serve up the web site but any php calls should now be directed at the Worker machine? Is there any benefit to keeping the Linux box since it is no longer handling the php requests?

                        • 9. Re: FMS13 in a 2-machine deployment plus Linux web server
                          johnnyb

                          That's tough to answer without knowing more about what you intend to do.

                           

                          But yeah, if you're planning to use the PHP API for FileMaker to pull data from FileMaker into your web site, then your web site will run on the linux box and will make calls to the FMS worker machine for the data.

                           

                          If you're planning to build a full solution with WebDirect, then your users will go directly to that solution, typically at a different URL from your main web site.

                           

                          We may be too many degrees removed from the client's objectives to really pin down what will go where, though. Are you just trying to get a sense of what's feasible before you go into a requirements-gathering discussion? Because quite a lot is feasible, one way or another, but you might not want to promise anything too specific in terms of implementation too early.

                          1 of 1 people found this helpful
                          • 10. Re: FMS13 in a 2-machine deployment plus Linux web server
                            Malcolm

                            So, leave the Linux box alone to serve up the web site but any php calls should now be directed at the Worker machine? Is there any benefit to keeping the Linux box since it is no longer handling the php requests?

                             

                            The linux box is running the web site. Where will you put the html/php code when the linux box is gone? If you are going to be the only web client then you may consider putting your web site into the FMS HTTP directory and working from there. It is possible to do this but it sucks in all sorts of ways. I think it is considerably easier to run a separate web server and a linux box is ideal for the task.

                             

                            Box 1 (mac|win) Primary - runs FM Server

                            Box 2 (mac|win) optional - runs FMS Web Publishing Engine

                            Box 3 (*nix) optional - runs standard web server, hosts web sites

                             

                            FMGo and FMPro talk to box 1.

                            WebDirect talks to box 2 (box 2 talks to box 1).

                            Web Sites (PHP/XML) running on Box 3 talks to Box 2 (box 2 talks to box 1)

                             

                            Malcolm

                            1 of 1 people found this helpful
                            • 11. Re: FMS13 in a 2-machine deployment plus Linux web server
                              nealalanfrank

                              Thanks everyone you've been super helpful!

                              • 12. Re: FMS13 in a 2-machine deployment plus Linux web server
                                nealalanfrank

                                The client has a web site on the linux box that makes php calls to FMS13; which is currently in a single-machine deployment. She's wanting to start providing WebDirect as a connection option and so has heard she must deploy FMS in a 2-machine configuration to satisfy WebDirect. She is wanting to know how that is going to change things. She was concerned the WebSite would need to be moved to the Worker machine which can't be a linux box since FMS doesn't run on that platform. The hope was that the website could stay where it is and FMS could be redeployed in a 2-machine configuration. Then it was just a question of what needs to be changed on the web site or in the FMS settings so everything works properly.

                                • 13. Re: FMS13 in a 2-machine deployment plus Linux web server
                                  jratka

                                  Malcolm wrote:

                                   

                                  So, leave the Linux box alone to serve up the web site but any php calls should now be directed at the Worker machine? Is there any benefit to keeping the Linux box since it is no longer handling the php requests?

                                   

                                  The linux box is running the web site. Where will you put the html/php code when the linux box is gone? If you are going to be the only web client then you may consider putting your web site into the FMS HTTP directory and working from there. It is possible to do this but it sucks in all sorts of ways. I think it is considerably easier to run a separate web server and a linux box is ideal for the task.

                                   

                                  Box 1 (mac|win) Primary - runs FM Server

                                  Box 2 (mac|win) optional - runs FMS Web Publishing Engine

                                  Box 3 (*nix) optional - runs standard web server, hosts web sites

                                   

                                  FMGo and FMPro talk to box 1.

                                  WebDirect talks to box 2 (box 2 talks to box 1).

                                  Web Sites (PHP/XML) running on Box 3 talks to Box 2 (box 2 talks to box 1)

                                   

                                  Malcolm

                                  Malcolm

                                  Thanks so much for breaking this down for us. I really appreciate this explanation.

                                  • 14. Re: FMS13 in a 2-machine deployment plus Linux web server
                                    jratka

                                    Thanks to all on this post - from "the client"