Author |
|
myalias
Joined: 26 Jul 2021 Posts: 2 Location: new zealand
|
Posted: Wed 28 Jul '21 12:26 Post subject: Single Domain servicing multipule ports on a single host. |
|
|
Kia Ora Tatou.
James from New Zealand calling.....
Before I start uploading a mess of configs and convoluted reasons why I haven got this to work yet I will try and ask a simple question.
Q: Is it possible to have a single domain redirect/forward to an internal address:port.
Example 1:
www.example.com/media1 is serviced by www.internal.int:8081
and
www.example.com/media2 is serviced by www.internal.int:8082
I do have a working reverse proxy with valid LetEncrypt SSL cert that I could publish tomorrow.
it currently forwards/redirects www.example.com to www.internal.int:8081
Nga Mihi.
Thanks you very much for you king donation.
Thank you very much thank you very very very much...
James. |
|
Back to top |
|
mraddi
Joined: 27 Jun 2016 Posts: 152 Location: Schömberg, Baden-Württemberg, Germany
|
Posted: Wed 28 Jul '21 14:40 Post subject: |
|
|
Hello James,
A: yes, this is possible.
Ports used on the internal and external ressources do not need to match. Its only config on the reverse-proxy/loadbalancer to do the matching.
I don't know if it is useful/practical to use non-standard-ports on the external, but it is possible |
|
Back to top |
|
myalias
Joined: 26 Jul 2021 Posts: 2 Location: new zealand
|
Posted: Thu 29 Jul '21 3:16 Post subject: |
|
|
Great, so i'm not trying to reinvent the wheel.
I have searched this problem at length but as yet haven't found an example that I can re-engineer.
This is likely as I don't know the terminologies and little to nothing about the Acache language.
Could someone just give me the answer to the coding I need to apply to my .conf.
An example of the code required to get....
www.example.com/site1 redirects/forwards to www.internal.int:8088
and
www.example.com/site2 redirects/forwards to www.internal.int:9088
I can then recode using my URLS and test.
I have tried to keep the enviroment simple, default apache2.conf and 000-default.conf... etc
I have enabled Apache2Proxy.conf to manage the Reverse Proxy... sell below.
Code: |
<VirtualHost *:80>
ServerName myalias.example.com
# Uncomment for HTTP to HTTPS redirect
Redirect permanent / https://myalias.example.com
ErrorLog /var/log/apache2/myalias.example.com-error.log
CustomLog /var/log/apache2/myalias.example.com-access.log combined
</VirtualHost>
# Uncomment this section after you have acquired a SSL Certificate
# If you are not using a SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName myalias.example.com
ProxyPreserveHost On
ProxyPass "/socket" "ws://myalias.example.com:8081/socket"
ProxyPassReverse "/socket" "ws://myalias.example.com:8081/socket"
ProxyPass "/" "http://myalias.example.com:8081/"
ProxyPassReverse "/" "http://myalias.example.com:8081/"
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/myalias.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/myalias.example.com/privkey.pem
Protocols h2 http/1.1
ErrorLog /var/log/apache2/myalias.example.com-error.log
CustomLog /var/log/apache2/myalias.example.com-access.log combined
</VirtualHost>
</IfModule>
|
|
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
Posted: Fri 30 Jul '21 10:02 Post subject: |
|
|
Code: |
<VirtualHost *:443>
ServerName myalias.example.com
DocumentRoot /home/example/htdocs
ErrorDocument 503 /500.html
<Directory /home/example/htdocs>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
SSLProxyEngine on
ProxyRequests off
ProxyPreserveHost On
<Location "/site1">
ProxyPass /500.html !
ProxyPass /site1 http://127.0.0.1:8081/ nocanon
ProxyPassReverse /site1 http://127.0.0.1:8081/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/site1?(.*) "ws://127.0.0.1:8081/$1" [P,L]
</Location>
<Location "/site2">
ProxyPass /500.html !
ProxyPass /site2 http://127.0.0.1:9088/ nocanon
ProxyPassReverse /site2 http://127.0.0.1:9088/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/site2?(.*) "ws://127.0.0.1:9088/$1" [P,L]
</Location>
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Header always unset Content-Security-Policy
ErrorLog /var/logs/apache2/myalias.example.com.error.log
TransferLog /var/logs/apache2/myalias.example.com.access.log
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/myalias.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/myalias.example.com/privkey.pem
</VirtualHost>
|
it might be easier to use different sub domains.
Code: |
<VirtualHost *:443>
ServerName myalias.example.com
DocumentRoot /home/example/htdocs
ErrorDocument 503 /500.html
<Directory /home/example/htdocs>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
SSLProxyEngine on
ProxyRequests off
ProxyPreserveHost On
ProxyPass /500.html !
ProxyPass / http://127.0.0.1:8081/ nocanon
ProxyPassReverse / http://127.0.0.1:8081/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:8081/$1" [P,L]
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Header always unset Content-Security-Policy
ErrorLog /var/logs/apache2/myalias.example.com.error.log
TransferLog /var/logs/apache2/myalias.example.com.access.log
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/myalias.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/myalias.example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName myalias2.example.com
DocumentRoot /home/example/htdocs
ErrorDocument 503 /500.html
<Directory /home/example/htdocs>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
SSLProxyEngine on
ProxyRequests off
ProxyPreserveHost On
ProxyPass /500.html !
ProxyPass / http://127.0.0.1:9088/ nocanon
ProxyPassReverse / http://127.0.0.1:9088/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:9088/$1" [P,L]
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Header always unset Content-Security-Policy
ErrorLog /var/logs/apache2/myalias2.example.com.error.log
TransferLog /var/logs/apache2/myalias2.example.com.access.log
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/myalias2.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/myalias2.example.com/privkey.pem
</VirtualHost>
|
|
|
Back to top |
|
chamroeun
Joined: 02 Nov 2021 Posts: 2 Location: cambodia
|
Posted: Wed 03 Nov '21 7:04 Post subject: ProxyWebsocketIdleTimeout not working |
|
|
Hi,
I already upgrade my apache to 2.4.5 but still ProxyWebsocketIdleTimeout is not available.
Any suggestion? |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
|
Back to top |
|