# Standalone Web App with Apache reverse proxy

**URL:** <https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936>\
**Category:** Web\
**Created:** [August 8, 2021, 11:54am UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936 "2021-08-08T11:54:53Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 8, 2021, 11:54am UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/1 "2021-08-08T11:54:54Z")

</div>

I would like to propose again a topic that I think is still without solution.

see for example [Standalone Web Applications running behind a reverse proxy](https://forum.xojo.com/t/standalone-web-applications-running-behind-a-reverse-proxy/38311) and other similar threads.

my forced scenario:

1. the web application must be installed on a Windows server.
2. the sample application ([http://mysite.com:9000](http://mysite.com:9000)) must be available to users at [http://mysite.com/myapp/](http://mysite.com/myapp/)

I have no experience with HAproxy and Nginx (which anyway are unavailable or not recommended on Windows).

not using a subdirectory is known to be solved quickly using Apache:  
ProxyPass / [http://mysite.com:5000/](http://mysite.com:5000/)  
ProxyPassReverse / [http://mysite.com:5000/](http://mysite.com:5000/)

using a subdirectory is also known not to work:  
ProxyPass /myapp [http://mysite.com:5000/](http://mysite.com:5000/)  
ProxyPassReverse /myapp [http://mysite.com:5000/](http://mysite.com:5000/)

here in the forum some people have often suggested to use the subdomain instead of the subdirectory: [http://myapp.mysite.com](http://myapp.mysite.com)

but this is impossible for me, because my clients can’t activate subdomains for my applications.

if I’m not wrong, here in the forum the requests of other users to be able to access a web application like [http://mysite.com/myapp/](http://mysite.com/myapp/) have been ignored by Xojo staff.

but how should I solve the problem?  
leaving Xojo or losing my customers?

or is there a solution that I might have missed?

thank you.

---

<div class="post-metadata">

**Author:** ![MarkusR](https://forum.xojo.com/user_avatar/forum.xojo.com/markusr/32/685_2.png) [@MarkusR](https://forum.xojo.com/u/MarkusR)\
**Post date:** [August 8, 2021, 12:26pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/2 "2021-08-08T12:26:55Z")

</div>

for apache it was mentioned to enable mod\_proxy and edit the config.

without install/setup your customer (it admin) have to open one port (forwarding) for each xojo web app.  
the app itself is registered as windows service and can run also in a own “user” context.  
with certificate (.crt) file you have also https.  
for me alone i use always apps with a domain + port because it is easy to make ready.

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 8, 2021, 1:06pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/3 "2021-08-08T13:06:55Z")

</div>

thank you Markus.

Some of my customers are not allowed to manage these activities themselves, but are contractually obliged to ask their internet service provider.

My customers don’t like this and do it as little as possible. and only for strictly necessary things.

In addition, these customers have different suppliers of management software.

I am the ONLY supplier that creates these problems.  
and it is pointed out to me.

I believe that Xojo should adapt to the world (in this case to Apache, HAproxy, Nginx), not the world to Xojo.

otherwise it ends up that having chosen Xojo, years ago, becomes a noose around the neck for the professional developer.

I hope someone here has a solution.

---

<div class="post-metadata">

**Author:** ![MarkusR](https://forum.xojo.com/user_avatar/forum.xojo.com/markusr/32/685_2.png) [@MarkusR](https://forum.xojo.com/u/MarkusR)\
**Post date:** [August 8, 2021, 5:23pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/4 "2021-08-08T17:23:30Z")

</div>

understand.

make a requirement

> A  
> [https://customerdomain.com/newapp](https://customerdomain.com/newapp)  
> goto  
> localhost:5000
> 
> B  
> accessible via any free port =\> 1024  
> [https://customerdomain.com:5000](https://customerdomain.com:5000)

and the it admin have fun and you are not accountable if something break.  
plan b could be software as service on vps.

---

<div class="post-metadata">

**Author:** ![Per\_Ronny\_Westereng](https://forum.xojo.com/user_avatar/forum.xojo.com/per_ronny_westereng/32/1223_2.png) [@Per\_Ronny\_Westereng](https://forum.xojo.com/u/Per_Ronny_Westereng)\
**Post date:** [August 8, 2021, 5:54pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/5 "2021-08-08T17:54:48Z")

</div>

Lifeboat, by @Tim_Parnell might help you out with this.

Have a look

[https://strawberrysw.com/lifeboat/](https://strawberrysw.com/lifeboat/)

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 8, 2021, 6:52pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/6 "2021-08-08T18:52:38Z")

</div>

as far as I know Lifeboat uses Nginx on Linux

---

<div class="post-metadata">

**Author:** ![brian\_franco](https://forum.xojo.com/user_avatar/forum.xojo.com/brian_franco/32/156_2.png) [@brian\_franco](https://forum.xojo.com/u/brian_franco)\
**Post date:** [August 8, 2021, 7:03pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/7 "2021-08-08T19:03:36Z")

</div>

I believe you are right but I think Lifeboat has enhancements coming  
Maybe contact the author and ask?

---

<div class="post-metadata">

**Author:** ![SteveP](https://forum.xojo.com/user_avatar/forum.xojo.com/stevep/32/6872_2.png) [@SteveP](https://forum.xojo.com/u/SteveP)\
**Post date:** [August 8, 2021, 9:39pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/8 "2021-08-08T21:39:26Z")

</div>

Will all traffic be coming from one IP afdress (for one client) ? If so Nginx (without a custom compile (think that is the correct term)) will not help you with load balancing if you are also considering that.

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 9, 2021, 9:17am UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/9 "2021-08-09T09:17:40Z")

</div>

> [@brian\_franco](#):
>
> I believe you are right but I think Lifeboat has enhancements coming  
> Maybe contact the author and ask?

thank you Brian.

I’ll ask (or he can answer here, if he wants), but Nginx is officially not recommended on Windows.

anyway, I think that it should not be necessary to use plugins or applications like Lifeboat for this kind of problems.

with CGI these problems were not present (I speak from direct experience, since I still have some applications working in production).

Xojo staff has explained several times why CGI was abandoned.  
but did not provide alternative solutions.  
I think this is not correct.

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 9, 2021, 9:22am UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/10 "2021-08-09T09:22:09Z")

</div>

> [@SteveP](#):
>
> Will all traffic be coming from one IP afdress (for one client) ? If so Nginx (without a custom compile (think that is the correct term)) will not help you with load balancing if you are also considering that.

yes, only one IP.

But I need to manage multiple applications, I’m not looking for a performance improvement.  
at least right now.

---

<div class="post-metadata">

**Author:** ![Lars\_Lehmann](https://forum.xojo.com/user_avatar/forum.xojo.com/lars_lehmann/32/11818_2.png) [@Lars\_Lehmann](https://forum.xojo.com/u/Lars_Lehmann)\
**Post date:** [August 9, 2021, 3:24pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/11 "2021-08-09T15:24:23Z")

</div>

> [@Giacomo\_Bernardi](#):
>
> I believe that Xojo should adapt to the world (in this case to Apache, HAproxy, Nginx), not the world to Xojo.

To be fair, this is absolutely no issue of Xojo nor of your Xojo made app.  
It completely up to you how you handle your traffic on your server and Xojo has no chance to change it.

---

<div class="post-metadata">

**Author:** ![Vigia\_Lin](https://forum.xojo.com/letter_avatar_proxy/v4/letter/v/9fc348/32.png) [@Vigia\_Lin](https://forum.xojo.com/u/Vigia_Lin)\
**Post date:** [August 9, 2021, 3:58pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/12 "2021-08-09T15:58:01Z")

</div>

Web 2.0 is very difficult to deploy multiple applications on servers with only IP address, no domain name and limited ports. Web 1.0 can solve this problem by using paths. Many server ports are not managed by ourselves.  
At present, it is impossible to access Web 2.0 by path. I’m still using web 1.0 by xojo 2019r3.2.

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 9, 2021, 4:05pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/13 "2021-08-09T16:05:41Z")

</div>

> [@Lars\_Lehmann](#):
>
> To be fair, this is absolutely no issue of Xojo nor of your Xojo made app.  
> It completely up to you how you handle your traffic on your server and Xojo has no chance to change it.

I’m sorry, but I totally disagree.

what i have to do (but not only me, reading other previous threads) is present in Apache directives and probably (but i have no experience) also in HAproxy, Nginx and others.

maybe Apache designs and documents useless directives?

maybe Apache’s reverse proxy is a joke?

but it seems that Xojo only accepts the path “/” and doesn’t work if a subdirectory (e.g. “/myapp”) is present.

If you have time, read the thread I mentioned at the beginning.

I firmly believe that Xojo staff should take care of this problem.

but I’m afraid they won’t take care of it.  
neither of this, nor of others (also reported by you, with great evidence, if I remember correctly).

I repeat that to me it does not seem a serious behavior.  
nor convenient, because if Xojo Inc. continues to disappoint so many people, sooner or later it will pay the consequences.

for these reasons, I created this new thread, hoping that some of you guys have finally found a solution.

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 9, 2021, 4:10pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/14 "2021-08-09T16:10:30Z")

</div>

> [@Vigia\_Lin](#):
>
> Web 2.0 is very difficult to deploy multiple applications on servers with only IP address, no domain name and limited ports. Web 1.0 can solve this problem by using paths. Many server ports are not managed by ourselves.  
> At present, it is impossible to access Web 2.0 by path. I’m still using web 1.0 by xojo 2019r3.2.

How much longer will you be able to go with 2019r32?

I have decided that my new project needs to be 2.0.

or I will leave Xojo.

no one will notice, but it seems that others well known guys have already done so.

even Lars, if I remember correctly.

---

<div class="post-metadata">

**Author:** ![Lars\_Lehmann](https://forum.xojo.com/user_avatar/forum.xojo.com/lars_lehmann/32/11818_2.png) [@Lars\_Lehmann](https://forum.xojo.com/u/Lars_Lehmann)\
**Post date:** [August 9, 2021, 4:13pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/15 "2021-08-09T16:13:19Z")

</div>

Xojo apps bring their very own webserver to the start, which listens to a specific port, which you can alter.

Your app will never be accasible from a subdomain or a subdirectory out of the box, since this just not possible.

You always have to redirect the traffic **internally**. For that, you use a reverse proxy, which listens on a particular endpoint, such as another Port, a subdomain or a subdirectory, and redirects the traffic to the port of your application.

Xojo would have to provide plugins for the reverse proxy we’re using (Apache, NginX, HaProxy etc.), if would want to provide an easy setup. That is a tremendous amount of work, and it is just not Xojos task to configure your Server properly.

---

<div class="post-metadata">

**Author:** ![Lars\_Lehmann](https://forum.xojo.com/user_avatar/forum.xojo.com/lars_lehmann/32/11818_2.png) [@Lars\_Lehmann](https://forum.xojo.com/u/Lars_Lehmann)\
**Post date:** [August 9, 2021, 4:15pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/16 "2021-08-09T16:15:33Z")

</div>

> [@Giacomo\_Bernardi](#):
>
> How much longer will you be able to go with 2019r32?
> 
> I have decided that my new project needs to be 2.0.
> 
> or I will leave Xojo.
> 
> no one will notice, but it seems that others well known guys have already done so.
> 
> even Lars, if I remember correctly.

This is a completely different discussion.

Traffic handling of Web 2 is similar to Web 2, it just lacks on a CGI-Script which handles the traffic for you over PERL. You still can write something similar by your own.

---

<div class="post-metadata">

**Author:** ![MarkusR](https://forum.xojo.com/user_avatar/forum.xojo.com/markusr/32/685_2.png) [@MarkusR](https://forum.xojo.com/u/MarkusR)\
**Post date:** [August 9, 2021, 4:52pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/17 "2021-08-09T16:52:58Z")

</div>

> [@Giacomo\_Bernardi](#):
>
> but it seems that Xojo only accepts the path “/” and doesn’t work if a subdirectory (e.g. “/myapp”) is present.

it make no sense in xojo because you have to use a free port if apache or IIS is the webserver.  
http request are port 80 by default  
https request are 443 by default  
if you wrote at client  
[https://customerdomain.com/newapp](https://customerdomain.com/newapp)  
its usually  
[https://customerdomain.com:443/newapp](https://customerdomain.com:443/newapp)  
and because apache is listen at this port you can not use it too in xojo.  
without any webserver you would have the nice url and default port for firewall free for one xojo app.

generally each open port (door) is somehow a security risk because the running software behind.  
relevant is that security vulnerability are closed / the running web server is updated.

anybody have experience if apache or xojo is more safe?

---

<div class="post-metadata">

**Author:** ![Giacomo\_Bernardi](https://forum.xojo.com/letter_avatar_proxy/v4/letter/g/9dc877/32.png) [@Giacomo\_Bernardi](https://forum.xojo.com/u/Giacomo_Bernardi)\
**Post date:** [August 9, 2021, 5:57pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/18 "2021-08-09T17:57:56Z")

</div>

@Lars_Lehmann

With CGI all this was possible, somehow.

then Xojo removes CGI for its own reasons and tells users to deal with it because it’s no longer his problem.

should I write my own scripts?

you can not be serious.

---

<div class="post-metadata">

**Author:** ![Tim\_Parnell](https://forum.xojo.com/user_avatar/forum.xojo.com/tim_parnell/32/161_2.png) [@Tim\_Parnell](https://forum.xojo.com/u/Tim_Parnell)\
**Post date:** [August 9, 2021, 8:35pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/19 "2021-08-09T20:35:20Z")

</div>

Take a deep breath and step back for a minute. Ask yourself a few questions:

1. Is the tool I’m using working for me?
2. Can I contact Xojo directly and ask them change the framework to work for me? (most companies _do_ respond to financial incentives)
3. At what point do the costs outweigh the benefits of the tool I’m struggling with?

You’re really trying to turn a screw with a hammer here. With Xojo Web it is not easy to configure an app at a sub-path. The web server within the framwork [has a few expectations of url paths](http://documentation.xojo.com/api/web/webapplication.html#webapplication-handleurl).

By trying to run your app at a certain path you start to have to balance which requests need to be sent to the app vs. which are regular static website requests **yourself**. In my opinion that challenge defeats the purpose of using this rapid app development tool.

There are a lot of things to say about the different points mentioned in this thread, however I don’t want to get into a public back and forth about drawbacks and features. That won’t get us anywhere.

I’m happy to help wherever I can, but Apache and using Windows as a server are simply not something I can comment on. Please reach out to me if you find yourself using [Lifeboat](https://strawberrysw.com/lifeboat) and have any questions.

Best wishes,  
Tim Parnell

---

<div class="post-metadata">

**Author:** ![Anthony\_G\_Cyphers](https://forum.xojo.com/user_avatar/forum.xojo.com/anthony_g_cyphers/32/16862_2.png) [@Anthony\_G\_Cyphers](https://forum.xojo.com/u/Anthony_G_Cyphers)\
**Post date:** [August 9, 2021, 8:50pm UTC](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936/20 "2021-08-09T20:50:08Z")

</div>

This old post may be helpful:  
[https://forum.xojo.com/t/cgi-deployment-options/53986/26?u=anthony\_g\_cyphers](https://forum.xojo.com/t/cgi-deployment-options/53986/26)

[Next page](https://forum.xojo.com/t/standalone-web-app-with-apache-reverse-proxy/64936.md?page=2)
