Try adding $1 to the target to use the captured value. Also, depending on the response from the backend, you may need a ProxyPassReverse directive.
On Sun, Jul 2, 2023 at 11:41 AM Kaushal Shriyan <kaushalshri...@gmail.com> wrote: > Hi Frank, > > When I set the below in /etc/httpd/conf.d/phpnodejs.conf. When I hit > https://phpnodejs.mydomain.com which is the html content, the images are > broken and unable to load javascript, CSS etc... > > ProxyPass /index.html ! > ProxyPassMatch ^/(.+) http://localhost:3000/ > > #cat /etc/httpd/conf.d/phpnodejs.conf > <VirtualHost *:80> > ServerName phpnodejs.mydomain.com > Redirect / https://phpnodejs.mydomain.com/ > </VirtualHost> > <VirtualHost *:443> > DocumentRoot /var/www/html/htmlcode > DirectoryIndex index.html > ServerName phpnodejs.mydomain.com > Header add Access-Control-Allow-Origin "*" > LogLevel debug > SSLEngine on > SSLCertificateFile /etc/letsencrypt/live/ > phpnodejs.mydomain.com/cert.pem > SSLCertificateKeyFile /etc/letsencrypt/live/ > phpnodejs.mydomain.com/privkey.pem > SSLCertificateChainFile /etc/letsencrypt/live/ > phpnodejs.mydomain.com/chain.pem > Header always set Strict-Transport-Security "max-age=63072000; > includeSubDomains" > ProxyPass /index.html ! > ProxyPassMatch ^/(.+) http://localhost:3000/ > </VirtualHost> > > Please guide me. Thanks in advance. > > Best Regards, > > Kaushal > > > On Sun, Jul 2, 2023 at 8:57 PM Frank Gingras <thu...@apache.org> wrote: > >> ^/(.+) will already match /demo, why are you changing the expression? >> >> On Sun, Jul 2, 2023 at 10:42 AM Kaushal Shriyan <kaushalshri...@gmail.com> >> wrote: >> >>> Hi Frank, >>> >>> Thanks a lot. It worked perfectly. I have a follow up question for /demo >>> path (as part of node.js code so /demo has all nodejs code) just as an >>> improvement . I modified the ProxyPassMatch directive as per the below >>> example and it returned http 404. >>> >>> ProxyPassMatch ^/demo(.+) http://localhost:3000/ >>> >>> Am I missing anything? Apologies for bugging you. >>> >>> Please guide me. Thanks in advance. >>> >>> Best Regards, >>> >>> Kaushal >>> >>> >>> On Sun, Jul 2, 2023 at 8:00 AM Frank Gingras <thu...@apache.org> wrote: >>> >>>> This thread is getting very tiresome. So, let's summarize: >>>> >>>> - You want to request /, serve index.html >>>> - For all other requests, proxy internally >>>> >>>> As such, keep the ProxyPass /index.html ! for clarity and change your >>>> existing ProxyPass directive to: >>>> >>>> ProxyPassMatch ^/(.+) http://localhost:3000/ >>>> >>>> In short, this means that requesting / will not match, and requesting >>>> /foo will proxy. >>>> >>>> On Sat, Jul 1, 2023 at 9:22 PM Kaushal Shriyan < >>>> kaushalshri...@gmail.com> wrote: >>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Sun, Jul 2, 2023 at 6:20 AM Kaushal Shriyan < >>>>> kaushalshri...@gmail.com> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Sun, Jul 2, 2023 at 6:14 AM Kaushal Shriyan < >>>>>> kaushalshri...@gmail.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Sat, Jul 1, 2023 at 7:50 AM Kaushal Shriyan < >>>>>>> kaushalshri...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi Frank, >>>>>>>> >>>>>>>> Thanks for the email response and much appreciated. I added the >>>>>>>> ProxyPass /index.html ! directive in /etc/httpd/conf.d/phpnodejs.conf >>>>>>>> >>>>>>>> #cat /etc/httpd/conf.d/phpnodejs.conf >>>>>>>> <VirtualHost *:80> >>>>>>>> ServerName phpnodejs.mydomain.com >>>>>>>> Redirect / https://phpnodejs.mydomain.com/ >>>>>>>> </VirtualHost> >>>>>>>> <VirtualHost *:443> >>>>>>>> DocumentRoot /var/www/html/htmlcode >>>>>>>> ServerName phpnodejs.mydomain.com >>>>>>>> Header add Access-Control-Allow-Origin "*" >>>>>>>> SSLEngine on >>>>>>>> SSLCertificateFile /etc/letsencrypt/live/ >>>>>>>> phpnodejs.mydomain.com/cert.pem >>>>>>>> SSLCertificateKeyFile /etc/letsencrypt/live/ >>>>>>>> phpnodejs.mydomain.com/privkey.pem >>>>>>>> SSLCertificateChainFile /etc/letsencrypt/live/ >>>>>>>> phpnodejs.mydomain.com/chain.pem >>>>>>>> Header always set Strict-Transport-Security >>>>>>>> "max-age=63072000; includeSubDomains" >>>>>>>> ProxyPass /index.html ! >>>>>>>> ProxyPass / http://localhost:3000/ >>>>>>>> </VirtualHost> >>>>>>>> >>>>>>>> # apachectl configtest >>>>>>>> Syntax OK >>>>>>>> #apachectl -S >>>>>>>> VirtualHost configuration: >>>>>>>> *:80 phpnodejs.mydomain.com >>>>>>>> (/etc/httpd/conf.d/phpnodejs.conf:1) >>>>>>>> *:443 phpnodejs.mydomain.com >>>>>>>> (/etc/httpd/conf.d/phpnodejs.conf:5) >>>>>>>> ServerRoot: "/etc/httpd" >>>>>>>> Main DocumentRoot: "/var/www/html" >>>>>>>> Main ErrorLog: "/etc/httpd/logs/error_log" >>>>>>>> Mutex mpm-accept: using_defaults >>>>>>>> Mutex cache-socache: using_defaults >>>>>>>> Mutex authdigest-opaque: using_defaults >>>>>>>> Mutex watchdog-callback: using_defaults >>>>>>>> Mutex proxy-balancer-shm: using_defaults >>>>>>>> Mutex rewrite-map: using_defaults >>>>>>>> Mutex ssl-stapling-refresh: using_defaults >>>>>>>> Mutex authdigest-client: using_defaults >>>>>>>> Mutex lua-ivm-shm: using_defaults >>>>>>>> Mutex ssl-stapling: using_defaults >>>>>>>> Mutex proxy: using_defaults >>>>>>>> Mutex authn-socache: using_defaults >>>>>>>> Mutex ssl-cache: using_defaults >>>>>>>> Mutex default: dir="/run/httpd/" mechanism=default >>>>>>>> PidFile: "/run/httpd/httpd.pid" >>>>>>>> Define: DUMP_VHOSTS >>>>>>>> Define: DUMP_RUN_CFG >>>>>>>> User: name="apache" id=48 >>>>>>>> Group: name="apache" id=48 >>>>>>>> # >>>>>>>> >>>>>>>> when I hit https://phpnodejs.mydomain.com/ it still points to the >>>>>>>> nodejs server.js file located in /var/www/html/nodejssl. For testing >>>>>>>> purposes, I stopped the node js code to execute. I get the below >>>>>>>> message on >>>>>>>> the browser which is expected behaviour. >>>>>>>> >>>>>>>> [image: image.png] >>>>>>>> >>>>>>>> I am still unable to render the index.html file from the document >>>>>>>> root in /var/www/html/htmlcode which I created a new folder for testing >>>>>>>> purposes. >>>>>>>> >>>>>>>> Please suggest and guide me. Thanks in advance. >>>>>>>> >>>>>>>> Best Regards, >>>>>>>> >>>>>>>> Kaushal >>>>>>>> >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I have referred to >>>>>>> https://httpd.apache.org/docs/2.4/mod/mod_dir.html by adding >>>>>>> DirectoryIndex index.html directive in 443 virtualhost. The issue still >>>>>>> persists. >>>>>>> >>>>>>> #cat /etc/httpd/conf.d/phpnodejs.conf >>>>>>> <VirtualHost *:80> >>>>>>> ServerName phpnodejs.mydomain.com >>>>>>> Redirect / https://phpnodejs.mydomain.com/ >>>>>>> </VirtualHost> >>>>>>> <VirtualHost *:443> >>>>>>> DocumentRoot /var/www/html/htmlcode >>>>>>> DirectoryIndex index.html >>>>>>> ServerName phpnodejs.mydomain.com >>>>>>> Header add Access-Control-Allow-Origin "*" >>>>>>> SSLEngine on >>>>>>> SSLCertificateFile /etc/letsencrypt/live/ >>>>>>> phpnodejs.mydomain.com/cert.pem >>>>>>> SSLCertificateKeyFile /etc/letsencrypt/live/ >>>>>>> phpnodejs.mydomain.com/privkey.pem >>>>>>> SSLCertificateChainFile /etc/letsencrypt/live/ >>>>>>> phpnodejs.mydomain.com/chain.pem >>>>>>> Header always set Strict-Transport-Security >>>>>>> "max-age=63072000; includeSubDomains" >>>>>>> ProxyPass /index.html ! >>>>>>> ProxyPass / http://localhost:3000/ >>>>>>> </VirtualHost> >>>>>>> >>>>>>> Please suggest further and guide me. Thanks in advance. >>>>>>> >>>>>>> Best Regards, >>>>>>> >>>>>>> Kaushal >>>>>>> >>>>>> >>>>>> >>>>>> Further to the earlier email, I am sharing the log files. >>>>>> >>>>>> #cd /var/log/httpd/ >>>>>> #pwd >>>>>> /var/log/httpd >>>>>> # cat access_log >>>>>> 172.16.16.45 - - [02/Jul/2023:06:17:19 +0530] "GET / HTTP/1.1" 200 11 >>>>>> "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) >>>>>> Gecko/20100101 >>>>>> Firefox/114.0" >>>>>> 172.16.16.45 - - [02/Jul/2023:06:17:58 +0530] "GET >>>>>> /nodejssl/server.js HTTP/1.1" 200 11 "-" "Mozilla/5.0 (Macintosh; Intel >>>>>> Mac >>>>>> OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0" >>>>>> 172.16.16.45 - - [02/Jul/2023:06:18:03 +0530] "GET / HTTP/1.1" 200 11 >>>>>> "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) >>>>>> Gecko/20100101 >>>>>> Firefox/114.0" >>>>>> # cat error_log >>>>>> [Sun Jul 02 06:17:14.849472 2023] [suexec:notice] [pid 31795:tid >>>>>> 31795] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) >>>>>> [Sun Jul 02 06:17:14.880212 2023] [ssl:warn] [pid 31795:tid 31795] >>>>>> AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] >>>>>> [Sun Jul 02 06:17:14.881405 2023] [http2:warn] [pid 31795:tid 31795] >>>>>> AH10034: The mpm module (prefork.c) is not supported by mod_http2. The >>>>>> mpm >>>>>> determines how things are processed in your server. HTTP/2 has more >>>>>> demands >>>>>> in this regard and the currently selected mpm will just not do. This is >>>>>> an >>>>>> advisory warning. Your server will continue to work, but the HTTP/2 >>>>>> protocol will be inactive. >>>>>> [Sun Jul 02 06:17:14.882256 2023] [lbmethod_heartbeat:notice] [pid >>>>>> 31795:tid 31795] AH02282: No slotmem from mod_heartmonitor >>>>>> [Sun Jul 02 06:17:14.887938 2023] [mpm_prefork:notice] [pid 31795:tid >>>>>> 31795] AH00163: Apache/2.4.57 (IUS) OpenSSL/1.0.2k-fips configured -- >>>>>> resuming normal operations >>>>>> [Sun Jul 02 06:17:14.887993 2023] [core:notice] [pid 31795:tid 31795] >>>>>> AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' >>>>>> # >>>>>> >>>>>> Best Regards, >>>>>> >>>>>> Kaushal >>>>>> >>>>> >>>>> Hi, >>>>> >>>>> I have enabled debug logging by adding LogLevel debug in 443 >>>>> virtualhost. >>>>> >>>>> #cat /etc/httpd/conf.d/phpnodejs.conf >>>>> <VirtualHost *:80> >>>>> ServerName phpnodejs.mydomain.com >>>>> Redirect / https://phpnodejs.mydomain.com/ >>>>> </VirtualHost> >>>>> <VirtualHost *:443> >>>>> DocumentRoot /var/www/html/htmlcode >>>>> DirectoryIndex index.html >>>>> ServerName phpnodejs.mydomain.com >>>>> Header add Access-Control-Allow-Origin "*" >>>>> LogLevel debug >>>>> SSLEngine on >>>>> SSLCertificateFile /etc/letsencrypt/live/ >>>>> phpnodejs.mydomain.com/cert.pem >>>>> SSLCertificateKeyFile /etc/letsencrypt/live/ >>>>> phpnodejs.mydomain.com/privkey.pem >>>>> SSLCertificateChainFile /etc/letsencrypt/live/ >>>>> phpnodejs.mydomain.com/chain.pem >>>>> Header always set Strict-Transport-Security "max-age=63072000; >>>>> includeSubDomains" >>>>> ProxyPass /index.html ! >>>>> ProxyPass / http://localhost:3000/ >>>>> </VirtualHost> >>>>> >>>>> debug apache error log file -> http://sprunge.us/kndkvL >>>>> >>>>> Please suggest further and guide me. Thanks in advance. >>>>> >>>>> Best Regards, >>>>> >>>>> Kaushal >>>>> >>>>