Load Balancing with Apache Traffic Server - load-balancing

I was looking to use Apache Traffic Server for its reverse proxy functionality, but I also need it to load balance across clusters of servers. The documentation mentions load balancing, but I cannot find any details about it. Could someone please confirm one way or the other, and if it does support it, could you please provide a pointer to the documentation.

You will need mod_proxy & mod_proxy_balancer, per the docs

Out of the box, Apache Traffic Server only supports round robin load balancing using dns to resolve to multiple origins.
There is a plugin which offers more advanced balancing capabilities though:
https://github.com/apache/trafficserver/tree/master/plugins/experimental/balancer

Related

Is nginx needed if Express used

I have a nodeJS web application with Express running on a Digital Ocean droplet.The nodeJs application provides back-end API's. I have two react front-ends that utilise the API's with different domains. The front-ends can be hosted on the same server, but my developer tells me I should use another server to host the front-ends, such as cloudflare.
I have read that nginX can enable hosting multiple sites on the same server (i.e. host my front-ends on same server) but unsure if this is good practice as I then may not be able to use cloudflare.
In terms of security could someone tell me If I need nginx, and my options please?
Thanks
This is a way too open-ended question but I will try to answer it:
In terms of security could someone tell me If I need nginx, and my
options please?
You will need Nginx (or Apache) on any scenario. With one server or multiple. Using Express or not. Express is only an application framework to build routes. But you still need a service that will respond to network requests. This is what Nginx and Apache do. You could avoid using Nginx but then your users would have to make the request directly to the port where you started Express. For example: http://my-site.com:3000/welcome. In terms of security you would better hide the port number and use a Nginx's reverse proxy so that your users will only need to go to http://my-site.com/welcome.
my developer tells me I should use another server to host the
front-ends, such as cloudflare
Cloudflare does not offer hosting services as far as I know. It does offer CDN to host a few files but not a full site. You would need another Digial Ocean instance to do so. In a Cloudflare's forum post I found: "Cloudflare is not a host. Cloudflare’s basic service is a DNS provider, where you simply point to your existing host.".
I have read that nginX can enable hosting multiple sites on the same
server
Yes, Nginx (and Apache too) can host multiple sites. With different names or the same. As domains (www.my-backend.com, www.my-frontend.com) or subdomains (www.backend.my-site.com, www.my-site.com) in the same server.
... but unsure if this is good practice
Besides if it is a good or bad practice, I think it is very common. A few valid reasons to keep them in separated servers would be:
Because you want that if the front-end fails the back-end API continues to work.
Because you want to balance network traffic.
Because you want to keep them separated.
It is definitively not a bad practice if both applications are highly related.

Enable Geode REST to use HTTP and HTTPS at the same time

If we set Geode properties to use ssl for web then that means we have to use HTTPS for all web traffic. Is there a way to configure Geode, for development purposes, to use both HTTP on 1 port (8080) but also HTTPS on another (8443) ?
It looks like Jetty can be configured to allow both using multiple connectors, even on the same port...
Unfortunately that isn't possible at the moment. I'd suggest trying to start different instances of the various components (locator and server) with different SSL settings (off or on) for testing purposes.

Stopping traffic to unhealthy web server instance from loadbalancer

I have 3 web servers (Apache) which are behind vip (Apache, serving as a reverse proxy). We dont want LB to serve traffic if the anyone of web server which has 501 error.
How can I do that automatically.
PS: I am thinking is to use health checks as part of mod_proxy (under balancemember attribute).
I afraid you use wrong tool for LB. Apache can do that but it's not designed specially for that. My suggestion is to use HAProxy which is typical software for that situation.
If you need help with HAProxy just write. I could try to help but not ealier then on weekend.
ps. I created this account just to answer you :) I really know what I'm talking about. You want to use HAProxy instead of apache.

Apache HTTPD Config Visualization

Does anyone know of a tool that shows a visualization of an Apache HTTPD server configuration? I'm looking for something that I can run against a DMZ server that does a lot of ReverseProxy mapping. I have inherited 3 Apache servers that have ~100 VirtualHosts. It would be nice to be able to see for each VHOST what the specific configuration setting apply to each one. Where are the Error pages coming from for the host, locally globally or from the DMZ server? Things like HTTP Trace method that I cannot seem to turn off (despite the use of TraceEnable and Rewrite rules)
Are there any higher level tools for managing Apache configurations, dependencies and visualizing the relationships between servers?
Any/all replies appreciated.
Take a look at http://www.apache-gui.com/ might be useful?

Glassfish with Apache. Why SSL?

I have been looking around to figure out how to configure Glassfish front ended with Apache. And most of the tutorials using the load balancing plug in is making me enable SSL on Apache. I am trying to understand the connection. I should be able to do non SSL communications when I dont have a need for SSL.
There are several blog posts showing how you can use Apache in front of Glassfish. There are several options and depending on your needs, different strategies might be the most appropriate.
I've used Apache with mod_jk which forwards requests to Glassfish - both https and regular http. Lots of good references here.
It's possible to use other modules in Apache also like mod_proxy, but again the requirements you have will flesh out the most appropriate.
Glassfish also have pretty good http engine inside of it where you can configure virtual hosts like in apache. If the load on the Glassfish server isn't to big, you might consider just using Glassfish without anything in front of it.
You can also use the Sun Java System Web Server SJSWS instead of Apache. Despite it's atrocious name, it is just Sun's web server (free to use). It can be used as a reverse proxy (PDF). The SJWS/Glassfish combination is presumably tested really well by Sun.