Running Webrick alongside IIS on port 80

Hi,
I am hosting a couple of asp.net sites on IIS on my server.

Now I need to host another site in ruby on the same machine. For this I
guess i will need to run the webrick server.

Can anyone tell me how to have both iis and webrick running on port 80,
otherwise people will need to add the port 3000 to the site name each
time they visit the ruby site.

···

--
Posted via http://www.ruby-forum.com/.

Um, you cannot have to processes listen on the same port on one interface. You either have to resort to using a different port with WebRick (hopefully this is not a production server) or you make IIS serve Ruby code. You can certainly do this with CGI. I do not know whether there is better (faster) integration available for this web server (FastCGI?). Another solution is to configure a redirect in IIS that sends certain URL's off to the WebRick server on another port. Lots of options...

Kind regards

  robert

···

On 12.01.2007 23:47, Prashant Deva wrote:

Hi,
I am hosting a couple of asp.net sites on IIS on my server.

Now I need to host another site in ruby on the same machine. For this I
guess i will need to run the webrick server.

Can anyone tell me how to have both iis and webrick running on port 80,
otherwise people will need to add the port 3000 to the site name each
time they visit the ruby site.

Prashant Deva wrote:

Hi,
I am hosting a couple of asp.net sites on IIS on my server.

Now I need to host another site in ruby on the same machine. For this I
guess i will need to run the webrick server.

No. There are several options for hosting Ruby code. Plain CGI or FastCGI + [apache|lighhtp], or Mongrel, perhaps.

Or IIS. It can server Ruby up as CGI, I believe.

There's also ActiveScriptRuby:

  サービス終了のお知らせ

which could maybe be used as an ASP language.

···

--
James Britt

http://www.ruby-doc.org - Ruby Help & Documentation
http://beginningruby.com - Beginning Ruby: The Online Book
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys

It's not possible to have both IIS and webrick listen on port 80. You
might want to look into configuring IIS to proxy requests to webrick
using something like this: http://www.isapirewrite.com/. That way your
users will be able to connect through IIS to webrick without having to
specifiy a port in the URL. If you google for "rails ISAPI_Rewrite" you
should be able to find the info you need.

···

--
Posted via http://www.ruby-forum.com/.

Robert Klemme wrote:

Can anyone tell me how to have both iis and webrick running on port 80,
otherwise people will need to add the port 3000 to the site name each
time they visit the ruby site.

Um, you cannot have to processes listen on the same port on one
interface.

Sure you can. You can if you give the interface card 2 IP addresses
and have each process only listen to port 80 on one of the IPs.
I don't know how to do this in IIS; but Apache's docs describe
in their "Setting up multiple daemons" daemons section. I assume
webrick offers similar? Or are you considering this a different port?

You either have to resort to using a different port with
WebRick (hopefully this is not a production server) or you make IIS
serve Ruby code. You can certainly do this with CGI. I do not know
whether there is better (faster) integration available for this web
server (FastCGI?). Another solution is to configure a redirect in IIS
that sends certain URL's off to the WebRick server on another port. Lots
of options...

I'd say his easiest alternative is to run Apache on port 80; and
have it proxy some requests to some ruby server (hopefully better
than webrick - maybe mongrel) and proxy other requests to IIS running
on a different port. And then firewall off the IIS and webrick ports
of course for security reasons.

···

On 12.01.2007 23:47, Prashant Deva wrote:

James Britt wrote:

Prashant Deva wrote:

Hi,
I am hosting a couple of asp.net sites on IIS on my server.

Now I need to host another site in ruby on the same machine. For this I
guess i will need to run the webrick server.

No. There are several options for hosting Ruby code. Plain CGI or FastCGI + [apache|lighhtp], or Mongrel, perhaps.

Or IIS. It can server Ruby up as CGI, I believe.

There's also ActiveScriptRuby:

サービス終了のお知らせ

which could maybe be used as an ASP language.

How's this for an idea: run Mongrel on port 80, and proxy requests that aren't for the Ruby site to IIS on another port? I presume IIS can't be configured to proxy the same way that Apache can, so why not do it the other way around?

···

--
Alex

Robert Klemme wrote:

Can anyone tell me how to have both iis and webrick running on port 80,
otherwise people will need to add the port 3000 to the site name each
time they visit the ruby site.

Um, you cannot have to processes listen on the same port on one
interface.

Sure you can. You can if you give the interface card 2 IP addresses
and have each process only listen to port 80 on one of the IPs.

You actually can have *two* IP addresses on *one* NIC? Are you sure about that? How would you configure that for example on Linux?

I don't know how to do this in IIS; but Apache's docs describe
in their "Setting up multiple daemons" daemons section. I assume
webrick offers similar? Or are you considering this a different port?

Even if IIS and Webrick both support binding to just one IP address (which I assume) then you still need two DNS names - one for each IP. The OP did not sound as if that was what he wanted - if it's possible at all. Of course you could map one DNS name to both IP's but this might yield unpredictable results.

I'd say his easiest alternative is to run Apache on port 80; and
have it proxy some requests to some ruby server (hopefully better
than webrick - maybe mongrel) and proxy other requests to IIS running
on a different port. And then firewall off the IIS and webrick ports
of course for security reasons.

I'd say the *easiest* is to just run Ruby code via CGI - or just have Webrick run on another port. With your setup you have three pieces of software to configure, run and monitor vs. two in the other case.

Regards

  robert

···

On 13.01.2007 16:17, Ron M wrote:

On 12.01.2007 23:47, Prashant Deva wrote:

It is not terribly difficult to setup mod_proxy or mod_proxy_balancer to
send specific requests to IIS. There are lots of guides for configuring
mongrel with apache and mod_proxy, just swap out the idea of the mongrel
process and replace with IIS ip address.

You can do it on a host name basis with virtual hosts, or you could do some
mod_rewrite magic and have IIS only serve .asp* requests.

···

On 1/14/07, Alex Young <alex@blackkettle.org> wrote:

James Britt wrote:
> Prashant Deva wrote:
>> Hi,
>> I am hosting a couple of asp.net sites on IIS on my server.
>>
>> Now I need to host another site in ruby on the same machine. For this I
>> guess i will need to run the webrick server.
>
> No. There are several options for hosting Ruby code. Plain CGI or
> FastCGI + [apache|lighhtp], or Mongrel, perhaps.
>
> Or IIS. It can server Ruby up as CGI, I believe.
>
> There's also ActiveScriptRuby:
>
> サービス終了のお知らせ
>
> which could maybe be used as an ASP language.
>
How's this for an idea: run Mongrel on port 80, and proxy requests that
aren't for the Ruby site to IIS on another port? I presume IIS can't be
configured to proxy the same way that Apache can, so why not do it the
other way around?

--

Alex

HTH,
Michael Guterl

Robert Klemme <shortcutter@googlemail.com> writes:

[ ... ]

You actually can have *two* IP addresses on *one* NIC? Are you sure
about that? How would you configure that for example on Linux?

This varies slightly under different flavors of Linux. On one of the
linux boxes I use (RedHat, kernel version
2.6.9-022stab078.21-enterprise), it's done like this:

  In /etc/sysconfig/network-scripts, the following files exist (IP
  addr's changed):

    ifcfg-venet0
    contents: DEVICE=venet0
               BOOTPROTO=static
               ONBOOT=yes
               IPADDR=127.0.0.1
               NETMASK=255.255.255.255
               BROADCAST=0.0.0.0

    ifcfg-venet0:0
    contents: DEVICE=venet0:0
               ONBOOT=yes
               IPADDR=1.2.3.4
               NETMASK=255.255.255.255

    ifcfg-venet0:1
    contents: DEVICE=venet0:1
               ONBOOT=yes
               IPADDR=1.2.3.5
               NETMASK=255.255.255.255

    ifcfg-venet0:2
    contents: DEVICE=venet0:2
               ONBOOT=yes
               IPADDR=1.2.3.6
               NETMASK=255.255.255.255

    ifcfg-venet0:3
    contents: DEVICE=venet0:3
               ONBOOT=yes
               IPADDR=1.2.3.7
               NETMASK=255.255.255.255

  This sets up 127.0.0.1 plus four other IP's.

  Also, the following fragment exists in the standard, non-modified
  version of /etc/init.d/network that's in use at my site:

    [ ... etc. ... ]

    cd /etc/sysconfig/network-scripts

    . network-functions

    # find all the interfaces besides loopback.
    # ignore aliases, alternative configurations, and editor backup files
    interfaces=`ls ifcfg* | LANG=C egrep -v '(ifcfg-lo|:|rpmsave|rpmorig|rpmnew)' | \
                LANG=C egrep -v '(~|\.bak)$' | \
                LANG=C egrep 'ifcfg-[A-Za-z0-9\._-]+$' | \
                sed 's/^ifcfg-//g'`

    [ ... etc. ... ]

  Later in the script, the $interfaces variable is searched for all
  valid interfaces to start up.

That machine has a single NIC which is configured to listen on multiple
IP's. The server farm which manages this machine routes the four IP
addresses to this host. I'm pretty sure that it's not necessary to have
a special NIC for this.

···

--
Lloyd Zusman
ljz@asfast.com
God bless you.

You actually can have *two* IP addresses on *one* NIC? Are you sure
about that? How would you configure that for example on Linux?

man ifconfig :slight_smile:

Even if IIS and Webrick both support binding to just one IP address
(which I assume) then you still need two DNS names - one for each IP.
The OP did not sound as if that was what he wanted - if it's possible
at all.

Actually, the OP said "Now I need to host another site..." which to me
implies a unique host/domain name. So it would be easy to have his
existing ASP sites mapped to one IP and the Ruby site to another.

FWIW, my dev machines (SuSE currently, Windows in the past) always
have multiple IPs configured so I can run different server types/versions
simultaneously for testing...

···

On 1/13/07, Robert Klemme <shortcutter@googlemail.com> wrote:

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com

Maybe this can help you :
First,stop you iis,then start webrick like this:ruby script/server -p
80
Hassan Schroeder wrote:

···

On 1/13/07, Robert Klemme <shortcutter@googlemail.com> wrote:

> You actually can have *two* IP addresses on *one* NIC? Are you sure
> about that? How would you configure that for example on Linux?

man ifconfig :slight_smile:

> Even if IIS and Webrick both support binding to just one IP address
> (which I assume) then you still need two DNS names - one for each IP.
> The OP did not sound as if that was what he wanted - if it's possible
> at all.

Actually, the OP said "Now I need to host another site..." which to me
implies a unique host/domain name. So it would be easy to have his
existing ASP sites mapped to one IP and the Ruby site to another.

FWIW, my dev machines (SuSE currently, Windows in the past) always
have multiple IPs configured so I can run different server types/versions
simultaneously for testing...

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com

Maybe this can help you :
First,stop you iis,then start webrick like this:ruby script/server -p
80
Hassan Schroeder wrote: