ProxyPass: Redirect directory URL to non-standard port

apache-2.2proxypassubuntu-12.10

I've been searching Google and have no had much success in finding an answer. I'm running a server on Ubuntu and I have programs installed that use various non-standard ports. Each one uses a different port, in my case they are 9090, 9091, 9092, 9093, and 9094. I set up an apache server and have a domain name that can now reach my server instead of having to type in my IP address. What I'm looking for is a way to create directories that can point to the different ports I've listed. I want something like:

https://www.mydomain.com/app1
https://www.mydomain.com/app2
http://www.mydomain.com/app3

Some of the ports are over SSL, some are not, I just put them in order (9090-9094) for ease of use on my part. I'd like to get the /app1 to point to SSL port 9090, /app2 to point to SSL port 9091, and /app3 to point to non-SSL port 9092. Is there a simple way to do that? I've tried adding ProxyPass and the like based on other posts but nothing has worked. Do I need to add a new site?

Also, if this involves editing files, which I expect it will, it would be greatly appreciated if you could list the default location of the file and where to add things. I kept seeing posts saying to add ProxyPass, so I just assumed it went inside of VirtualHost, but I wasn't entirely sure. Basically, I know very little about web server setup and I need to be treated as such.

I apologize for any incorrect tags and I appreciate the time you took to read the post and any help you can provide.

EDIT: For clarification, the applications are already accessible through https://www.mydomain.com:9090, etc. I would just like a way to use https://www.mydomain.com/appName to get to the same location/page published by those applications.

EDIT 2:
From /etc/apache2/sites-available/default

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass /app1 https://localhost:9090/
    ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>

Best Answer

Make sure that the following apache modules are installed and loaded:

mod_proxy
mod_proxy_http
mod_ssl

You can check via running the following command as root(assuming httpd is in your $PATH)

httpd -t -D DUMP_MODULES

Afterwards, try changing your configuration to the following:

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Proxy>
SSLProxyEngine on
ProxyPass /app1 https://localhost:9090
ProxyPassReverse /app1 https://localhost:9090

The proxy should now work if you visit http://localhost/app1 or http://mydomain.com/app1 assuming mydomain.com points to localhost.