Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I want to run 3 kinds of servers on the same machine: Wowza (Both RTMP for Flash and HTTP for iOS), Icecast (HTTP) and Apache Web Server (HTTP).

How can I manage to jointly run those 3 on the same machine?

share|improve this question

5 Answers 5

You can run these services together unless there is a conflict in the port numbers they are listening on. Otherwise, you need to change the default port number. For example, you can not run multiple HTTP services on the same port 80.

share|improve this answer
    
So if I configure Apache to listen on port 81 each time I want to access it I would need to type "example.com:81/"? It's a little bit messy. I thought there's another option to do this with path. ("example.com/a" is Apache, "example.com/b" is Icecast, etc.) –  Ron Dec 27 '11 at 14:01
1  
And then you can use an Apache httpd module, so that certain request received by Apache httpd on port 80 are forwarded to Wowza (on port 8080 for instance) or to Icecast (on port 8081 for instance) –  rds Dec 27 '11 at 14:03
1  
This can be done, but you need to assign the port 80 to some proxy service which will forward the request based on the URL. It is possible, but I don't have much information about all the services you mentioned. –  Khaled Dec 27 '11 at 14:03

you can use reverse proxy - eg http://wiki.nginx.org/HttpProxyModule - and do the request routing there; you'll need to run nginx on port 80 and other services on different ports. but clients would connect always to port 80 or 443.

share|improve this answer
    
This will definitely work. But Apache can also do reverse proxy. It's probably more efficient to use the existing apache httpd for proxying Wowza and Icecast, rather than starting yet another http server (nginx). –  rds Dec 27 '11 at 14:13
1  
@rds if there's streaming involved and a lot of http connections nginx will use much less memory. –  pQd Dec 27 '11 at 22:18

Both Wowza and Icecast are based on Apache httpd. I suppose you could copy the appropriate content into a single apache httpd instance.

But as I said in my previous comment, it might also be simpler to use mod_proxy

share|improve this answer

The IP address/port has to be unique for each server so that incoming packets can be routed to the correct process. Running multiple virtual IP addresses, one for each server, allows each service to run on its default port.

share|improve this answer
1  
Yep. This. Bind some more IP addresses, use those, and everyone's a winner, surely? –  Tom O'Connor Dec 27 '11 at 14:36
    
+1 Best idea so far. Most scalable. Easy to set up. Then you just need to register 3 DNS entres. –  rds Dec 27 '11 at 22:40

you can use reverse proxy - eg http://wiki.nginx.org/HttpProxyModule - and do the request routing there. you can try it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.