Is it possible to run two webservers on the same port on the same server? E.g., Apache and Lighttpd

15,447

Solution 1

Only one app can have a particular port/IP combination open at a time , but you can approximate what you want by setting Apache up as a reverse proxy.

The highlights -

  • Run Apache on port 80, and enable mod_proxy
  • Do NOT turn on ProxyRequests (this is for forward proxying only)
  • Run your other app on a different port and/or IP
  • Use Apache virtual hosts and reverse proxy configuration to direct traffic to the appropriate site.

You can see these links for more info -

ApacheTutor article

Apache mod_proxy documentation

Solution 2

No, not unless you have two different public IP's on the server which each server can bind to. Each server then needs to explicitly listen on a specific IP/port combination and it will 'just work'.

The normal solution here if you only have access to a single IP address is to set up your Sinatra server on a different port (localhost:808* is popular), and then use mod_proxy in Apache to manage your Sinatra servers domain internally.

Share:
15,447

Related videos on Youtube

macek
Author by

macek

Updated on September 18, 2022

Comments

  • macek
    macek over 1 year

    Possible Duplicate:
    Running two services on port 80

    I have a QNAP TS-459 Pro II that comes with an Apache webserver which runs on port 80.

    I'd also like to run a small Sinatra app; also on port 80.

    I'd like Apache to serve up example.com and foo.example.com, but I'd like Sinatra to serve up bar.exapmle.com.

    Is it possible to have both webservers running on the same port but only answer based on specific domain binding?

    • Aaron Copley
      Aaron Copley over 12 years
      Sure, both can use port 80 (on different interfaces.)
    • Matthew Scharley
      Matthew Scharley over 12 years
      @Aaron don't even need two different physical interfaces. Subinterfaces are fine, as long as you have two IP's to run them on.
    • Aaron Copley
      Aaron Copley over 12 years
      Yep - Virtual or physical, an interface is an interface.
  • macek
    macek over 12 years
    can you provide a mod_proxy example? If so, I will mark this answer as accepted.
  • Matthew Scharley
    Matthew Scharley over 12 years
    @macek: Personally we use nginx as the proxy and main webserver so I don't have one on hand. The Apache docs are really good though, you're looking to implement a reverse proxy: httpd.apache.org/docs/2.2/mod/mod_proxy.html