Standalone Web App with Apache reverse proxy

thank you for your intervention @Ricardo_Cruz.
I don’t like the voting system, but since you decided so, I created the feature request (https://tracker.xojo.com/xojoinc/xojo/-/issues/73380).
I hope that the request will be followed up.
anyway, sincere thanks to @OracleCom_Com for his important contribution.

2 Likes

Nope, there wasn’t and it didn’t bothered me because I always used subdomains :slight_smile:
But it would be awesome if they implement the change so that subdirectory is also allowed without making advanced tweaks to the Apache/Nginx config.

4 Likes

I upvoted on the linked item.
Looks like it could improve how apps work.

2 Likes

thank you @AlbertoD for the note you added to the feature request (https://tracker.xojo.com/xojoinc/xojo/-/issues/73380).
it makes the request much clearer and more complete.

1 Like

thanks for your support @Amy_Barnes.

1 Like

I’m using latest version, I think it’s 2.0

I’m not sure I have never worked on cgi though

As far as I know, there are billions of server running on Apache, I don’t think they would make a huge change for proxy rules.

2 Likes

I’m just using an analogy. :joy:

Thank you OracleCom!

We are using Xojo for several small tasks. In this case it’s an app that is used to reset the domain account passwords (Samba-AD @Zentyal). But it must run alongside SOGo - so it had to be a reverse proxy!

I have implemented this in our webserver:

    # Redirect to password change app ...
    RewriteRule ^/pwchange(.*)$ http://127.0.0.1:8080/$1 [P]
    RewriteCond %{HTTP_REFERER} ^https?://[^/]+/pwchange
    RewriteRule ^(?!/pwchange)(.*)$ http://127.0.0.1:8080$1 [P]

Official URL is: https://exabyte-systems.com/pwchange
Yes - we may be mighty to provide such a thing to the Internet. But trust me - this is far better than using a complicated PHP setup together with other PHP overkill coding (i mean this one: GitHub - ltb-project/self-service-password: Web interface to change and reset password in an LDAP directory).

So we had to use Xojo - because (in our opinion this is more secure than the php approach). Because: KISS (keep it simple stupid!).

Hey XOJO!

What’s up with you - why don’t you guys don’t support this? Your users need THIS!
We use this for little admin tools - and having a working Reverseproxy solution with SUB-PATHING is mandatory now-a-days!!!

I will renew our license in case you give better support for this. Hey - this is a USP (admin tools) for you! Don’t you understand that?

best regards,
Michael H.G. Schmidt
Exabyte Systems

1 Like

Unfortunately, it seems that Xojo Inc. has a total disinterest in this argument.

@Michael_H.G_Schmidt1, @Giacomo_Bernardi, we’re already working on this.

6 Likes

Thank you Ricardo. :sunglasses:

good news, thank you @Ricardo_Cruz.
I recommend making sure it is also available with nginx.
given the increasing use of nginx around the world.

@Ricardo_Cruz if I’m not wrong, I don’t see any trace of the 73380 issue in the 2024r1 release notes.
has it been postponed?
thank you.

The --BaseURL launch parameter has been added, to help deploying web apps into subdirectories without having to deal with rewrites on the web server:

https://documentation.xojo.com/topics/application_deployment/web/deployment_details.html

As an example, if you launch your web application with this command:

./myapp --BaseURL=/foo

All the static assets and session communication will use that prefix. So instead of http://127.0.0.1:8080/framework/Xojo.js , it will be served from http://127.0.0.1:8080/foo/framework/Xojo.js

4 Likes

With BaseURL proxy configuration, it becomes very convenient.
thanks

1 Like

I also did a quick test under Nginx.

  1. I created a service that contains:
    ExecStart=/var/www/html/myapp/myapp --port=9000

  2. In /etc/nginx/sites-available/mysite I added:
    location /foo/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $schema;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:9000;
    }

if everything will work smoothly with real applications, I think this is a very important result.
certainly for me, but I think for others as well.

thanks to @Ricardo_Cruz and to the Xojo staff.

3 Likes