Is it possible to run two webservers on the same port on the same server? E.g., Apache and Lighttpd
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 -
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.
Related videos on Youtube
macek
Updated on September 18, 2022Comments
-
macek over 1 year
Possible Duplicate:
Running two services on port 80I 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
andfoo.example.com
, but I'd like Sinatra to serve upbar.exapmle.com
.Is it possible to have both webservers running on the same port but only answer based on specific domain binding?
-
Aaron Copley over 12 yearsSure, both can use port 80 (on different interfaces.)
-
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 over 12 yearsYep - Virtual or physical, an interface is an interface.
-
-
macek over 12 yearscan you provide a mod_proxy example? If so, I will mark this answer as accepted.
-
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